2011-10-13 23 views
8

Dự án của tôi có nguồn gốc như cocos2d Box2D mẫu và tôi đang gặp vấn đề ngay sau khi tôi đã cố gắng để tạo ra một thế giới:Xcode: Cocos2d: Không thể tạo ra thế giới với Box2D

world = new b2World(gravity,doSleep); 

Cung cấp cho các lỗi: Không hàm tạo phù hợp để khởi tạo 'b2World'.

Tệp là .mm, tôi cho rằng đó là một số vấn đề về thư viện liên kết có thể? Nếu vậy tôi đang sử dụng xCode 4, làm thế nào tôi có thể kiểm tra các lib được liên kết đúng cách?

Cảm ơn.

+0

Bạn đang sử dụng phiên bản cocos2d nào? Nếu đó là cocos2d 2.0 alpha thì sẽ có mẫu "cocos2d với box2d" được cập nhật. – LearnCocos2D

Trả lời

25

Bạn đang sử dụng Box2D v2.2 hoặc mới hơn. Các b2World constructor không còn mất hai đối số, chỉ một (trọng lực). Bạn phải đặt riêng doSleep:

world = new b2World(gravity); 
world->SetAllowSleeping(doSleep); 

Đây không phải là thay đổi duy nhất bạn sẽ cần thực hiện để chuyển từ Box2D v2.1.x sang v2.2.x. Kobold2D có dự án mẫu Box2D 2.2.1 đang hoạt động, ngay cả khi bạn không sử dụng Kobold2D, bạn có thể nhận mã nguồn được cập nhật cho các thông tin cơ bản về Box2D. Đặc biệt là lớp GLESDebugDraw và cách thiết lập hộp giới hạn màn hình với một cơ thể sử dụng nhiều hình dạng.

+0

cảm ơn tuyệt vời :) – FBryant87

+0

Cảm ơn bạn Steffen. Có vẻ như tham chiếu chính thức Box2D đã bỏ lỡ bản cập nhật. http://box2d.org/manual.pdf trang 8 vẫn có cách tạo thế giới cũ. BTW, bạn đã thiết lập một "cổng lắng nghe" rất hay cho các câu hỏi Cocos2D :). –

Các vấn đề liên quan