2011-09-03 40 views
5

Tôi biết canvas HTML5 khá tốt, tôi biết những điều cơ bản và hình ảnh động sử dụng các vòng lặp, vvLàm cách nào để vẽ thế giới Box2D của tôi bằng HTML5 Canvas thay vì Gỡ lỗi?

Demo Tôi đang làm việc với: (bấm vào để làm cho hình dạng) http://henry.brown.name/experiments/box2d/example-canvas.html

Những gì tôi không phải là rất quen thuộc với là Box2D. Tôi đang sử dụng cổng Box2DWeb, tôi nghe nó mới hơn Box2D-js, tôi không chắc cái nào là tốt nhất.

Tôi biết cách khởi tạo 'thế giới' và tôi có thể đặt các đối tượng trên thế giới. Sau đó, tôi sử dụng Step để tạo hiệu ứng cho thế giới - tuy nhiên để hiển thị nó trên màn hình cho đến nay tôi chỉ có thể làm cho nó hoạt động với bản vẽ gỡ lỗi vì nó cơ bản làm mọi thứ cho bạn.

Thay vì sử dụng bản vẽ gỡ lỗi, tôi muốn sử dụng canvas để vẽ, ví dụ: ô tô thay vì chỉ một hình vuông. Làm cách nào để gắn vật lý của hình vuông vào hình ảnh của ô tô? Tôi chỉ không thể có được đầu của tôi xung quanh tích hợp vải với Box2D.

Mọi mẹo sẽ được đánh giá ồ ạt!

Cảm ơn

+0

tạo ảnh vui nhộn liên kết, bạn sẽ quan tâm đến việc http://www.uselesspickles.com/jsballs/, nó có gì để làm với câu hỏi, nhưng nó cũng là một mô phỏng vật lý JavaScript tuyệt vời –

+0

Hey. Tôi đã tự hỏi nếu bạn có vấn đề này được giải quyết. Tôi có cùng một vấn đề. Tôi không có ý tưởng làm thế nào để truy cập vào các thông số như vị trí, vận tốc, góc của một đối tượng. Gỡ lỗi Vẽ, thu hút mọi thứ bằng cách sử dụng tất cả các tham số đó. Tôi muốn biết cách chúng ta có thể trực tiếp truy cập chúng. – batman

+0

Phản hồi rất muộn, nhưng có, tôi đã giải quyết được sự cố. Tôi sẽ bình luận trong các câu trả lời khác. – Henryz

Trả lời

2

Nếu bạn không quen thuộc với Box2D bạn nên kiểm tra các tài liệu tại http://www.kyucon.com/doc/box2d/. Điều này sẽ cho bạn biết tất cả các thuộc tính bạn cần. Theo hiểu biết của tôi, cách sử dụng Box2D tiêu chuẩn là đính kèm một hình ảnh với userData. Xem hướng dẫn ví dụ này để sử dụng hình ảnh và Canvas.

http://www.jeremyhubble.com/box2d.html

+0

http://www.kyucon.com/doc/box2d/ là một tài nguyên tuyệt vời! – Henryz

+0

http://www.jeremyhubble.com/box2d.html cuối cùng đã giúp tôi tìm ra giải pháp này. Các thử nghiệm mới của tôi với Box2D có trên trang web của tôi www.henry.brown.name – Henryz

+0

Tài liệu box2d rất tuyệt, giao diện người dùng có thể hơi khó điều hướng. Chỉ cần được cảnh báo rằng các tài liệu không giống như jQuery. –

0

Tôi có cùng một câu hỏi. here là tài liệu về nó. Bạn có thể sử dụng các cuộc gọi như GetBodyList(), GetAngle() và các thành viên như m_position để nhận tất cả những gì bạn cần để vẽ bất kỳ thứ gì sử dụng bất kỳ thư viện nào bạn muốn sử dụng trên canvas.

7

Tôi đã dành vài ngày qua để thử điều tương tự. tôi thấy Jonny Strömberg's tutorial, mà không phải là siêu detailled nhưng bằng cách phân tích mã tôi thấy làm thế nào ông lấy vị trí của cơ thể:

var b = world.GetBodyList() 

GetBodyList() có vẻ là một mảng lặp đi lặp lại, vì vậy cơ thể tiếp theo là truy cập thông qua b. m_next.

Sau đó bạn có thể sử dụng

b.GetPosition().x 
b.GetPosition().y 
b.GetAngle() 

để lấy tọa độ của cơ thể.

EDIT: mã này là dành cho các thư viện Box2dweb, mà tôi tìm thấy tài liệu tốt hơn so với Box2djs

+0

Câu trả lời hay, cảm ơn vì đã khai sáng cho tôi trên GetBodyList. – Henryz

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