2012-04-24 17 views
6

Tôi tự hỏi làm thế nào đẹp là "Contre jour" trò chơi cho IOS. Đặc biệt tôi thích "xúc tu" đàn hồi, được hiển thị trong video này trên 2 phút 20 giây: http://www.youtube.com/watch?v=ptdTdJarWLwHiệu ứng đồ họa như xúc tu đàn hồi trong Contre Jour

Tôi có thể thực hiện các hiệu ứng như thế nào?

Tôi biết rằng có kỹ thuật được gọi là "tích hợp Verlet" và thậm chí thực hiện "dây thừng" để vẽ các sợi dây trong cocos2d, nhưng làm thế nào để tạo ra hiệu ứng đàn hồi đẹp như vậy để "tua" sprite?

Tôi có kinh nghiệm sử dụng box2D và có thể cố gắng triển khai vật lý cho hiệu ứng này, nhưng không thể tìm ra giải pháp làm thế nào để vẽ sprite với biến dạng đàn hồi như vậy.

Ai đó có thể giúp tôi hoặc đưa ra một số gợi ý không?

Thậm chí chỉ cần giải thích về kỹ thuật, có thể giúp tôi?

Tôi có một ít kinh nghiệm về trải nghiệm cocos2d tuyệt vời, vì vậy tôi định sử dụng cocos2d.

Xin lỗi vì tiếng anh xấu, tôi hy vọng, bạn sẽ hiểu vấn đề của tôi :)

Trả lời

9

Nếu bạn sử dụng Box2D, bạn có thể thử một doanh khoảng cách với frequencyHz và các tùy chọn dampingRatio thiết lập các giá trị không mặc định. Có lẽ một tần số thấp khoảng 4-6, và giảm xóc khoảng 0,5-0,7 có thể là một điểm tốt để bắt đầu. Bạn có thể nghĩ về tần suất như bao nhiêu lần mỗi giây khớp cố gắng để sửa khoảng cách, và giảm xóc như thế nào khoảng cách được sửa chữa mỗi lần. Việc thiết lập giảm xóc với giá trị nhỏ hơn 1 sẽ có nghĩa là khớp sẽ chậm hơn để điều chỉnh khoảng cách và nó sẽ có hành vi cao su/cao su.

Để hiển thị, bạn thực sự có thể sử dụng tích hợp Verlet cho việc này. Lấy hai điểm neo của khớp khoảng cách như các điểm cuối của 'sợi dây thừng', và đặt một số điểm (không giống như quá nhiều sẽ là cần thiết) ở giữa chúng trong một đường đều nhau. Mỗi dấu thời gian, các điểm ở giữa sẽ đơn giản di chuyển về phía mức trung bình của hai điểm ở hai bên của chính chúng. Bạn có thể làm cho sợi dây trông chặt hơn hoặc lỏng hơn bằng cách điều chỉnh khoảng cách giữa các điểm inbetween di chuyển đến vị trí đích mỗi bước thời gian.

Kết xuất họa tiết/kết xuất cuối cùng sau đó sẽ lấy vị trí của nó từ vị trí hiện tại của các điểm verlet.

+0

Xem thêm ví dụ 'Web' trong test2 của Box2D. – iforce2d

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