Làm thế nào để mô phỏng lông rơi trong box2d?


10

Tôi đang làm việc với AndEngine với phần mở rộng Box2d, nhưng câu trả lời chung hoặc ý tưởng khái niệm cũng sẽ được đánh giá cao.

Tôi có những vật thể giống như lông vũ trong một thế giới nhìn bên 2D mà tôi muốn trở thành một phần của mô phỏng vật lý. Tôi đang sử dụng giảm xóc tuyến tính để làm cho "lông" rơi chậm. Đây có thể không phải là một ý tưởng tốt, có lẽ tôi nên áp dụng lực trong mỗi bản cập nhật, tuy nhiên, điều này hoạt động và nó làm cho vật thể trông "nhẹ" và cảm giác như có không khí với lực cản.

Bây giờ làm thế nào tôi có thể làm cho các vật thể thực sự trông giống như lông vũ rơi trong không khí?

Cụ thể tôi đang tìm kiếm hai loại đối tượng: Dài với mật độ thấp, sẽ di chuyển xuống trong một chuyển động xoay chậm và các vật thể vuông sẽ thay đổi quỹ đạo ngẫu nhiên. Sẽ thật tuyệt nếu đây có thể là một mô phỏng và độ dài sẽ là một tham số - đối tượng càng dài thì nó sẽ càng xoay. Ngay bây giờ tôi muốn mô phỏng lông, lá và bông tuyết trong một thế giới hoạt hình.

Đường đi của vật rơi


2
Làm thế nào về một ảnh chụp màn hình hoặc khái niệm phác thảo hoặc bất cứ điều gì như thế? Rốt cuộc, có hàng tấn những thứ khác nhau mà bạn có thể coi là một chiếc lông vũ, và tôi muốn nói rằng hầu hết sẽ hành xử khác nhau dựa trên tình huống của bạn.
Mario

Đã thêm thông tin và một hình ảnh.
MartinTeeVarga

Câu trả lời:


6

Giống như hạ cánh mặt trăng, bạn nên giả mạo nó . Các vật lý của rung động, sụt giảm và xoáy tự động gây ra là phức tạp. Có những bài viết mô phỏng hiệu ứng này và chúng tạo ra một số hình ảnh động Java đáng yêu .

Nhưng, tôi thậm chí sẽ đi xa hơn trong nhà máy của bạn và thực hiện một cái gì đó giống như một làn sóng hình sin đang phát triển để làm sinh động phong trào.

nhập mô tả hình ảnh ở đây

Rõ ràng bạn sẽ muốn điều chỉnh các giá trị bắt đầu, tốc độ tăng biên độ và tần số độc lập cho đến khi bạn có được thứ gì đó trông gần với những gì bạn muốn. Bạn muốn có một số ngẫu nhiên ném vào để làm cho nó thú vị. Ngoài ra, như ví dụ của bạn cho thấy, các vật thể rất nhẹ có diện tích bề mặt cao thực sự có thể đi lên gần các cạnh của sóng. Vì vậy, các sóng trên một biên độ nhất định sẽ bắt đầu tạo thành một giá trị quét lên, với giá trị tối đa giới hạn nhỏ.

Vật thể càng ít khối lượng và diện tích bề mặt càng nhiều, bạn càng tăng biên độ và tần số của sóng hình sin. Khối lượng lớn hơn và diện tích bề mặt ít hơn sẽ dẫn đến giảm biên độ và tần số.


3
**
Kẻ chủ

Ok, vì vậy tôi có thể có hai chức năng, phát triển sóng hình sin sẽ điều khiển chuyển động ngang, sau đó một số chức năng sẽ điều khiển chuyển động dọc và có thể sẽ phụ thuộc vào khoảng cách trung tâm của vật thể và sẽ có một số nắp sẽ phá vỡ chuyển động và gửi lại ... Nếu tôi tìm ra chức năng kết hợp như vậy sẽ cho tôi một lực, làm thế nào để tôi áp dụng lực? Trong mỗi tích tắc của động cơ một chút dựa trên thời gian trôi qua? Tôi chưa thực sự làm việc với box2d trước đây.
MartinTeeVarga

Âm thanh như thế sẽ hoạt động tốt, để trọng lực xử lý phần còn lại. Có một vài cách khác nhau để xử lý lực lượng. Có khả năng nó sẽ ở trong mỗi tích tắc của động cơ, dựa trên thời gian trôi qua như bạn nói. Họ sẽ là lực lượng thúc đẩy, có nghĩa là nhất thời cho khung đó. Xem câu hỏi này để tìm hiểu thêm (điều này giống nhau ngay cả khi bạn không sử dụng Cocos2D như trong câu hỏi).
MichaelHouse
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.