2011-08-08 31 views
6

Tôi đang cố gắng để đặt một quả bom ở một số nơi và khi nó phát nổ mọi thứ xung quanh nó sẽ bay đi và tốc độ phụ thuộc vào cách đóng đối tượng vào quả bom. giống như khi chim đen phát nổ trong những con chim giận dữ.Làm thế nào để animate một vụ nổ thổi các cơ quan xung quanh đi?

bất kỳ ai có thể cho tôi một mẫu mã hay một cách để làm điều đó (Tôi đang sử dụng andengine với Box2D)

cảm ơn bạn

+3

trong giây lát ở đó, tôi đã lo lắng – snowflakekiller

+1

bạn nên sửa đổi câu hỏi để các điểm lập trình phù hợp hơn –

+0

Có nhiều cách bạn có thể thực hiện việc này. Một số cuộc thảo luận thú vị ở đây: http://box2d.org/forum/viewtopic.php?f=3&t=1688 – iforce2d

Trả lời

7

Nếu nó sẽ phải thực tế (ish), như Angry Birds , sau đó đối với từng vật thể bị thổi bay bởi quả bom, nó sẽ đi theo một con đường bậc hai.

Tôi không biết andengine hoặc box2d. Nhưng tôi đã thực hiện mô hình vụ nổ và phóng xạ 2d đơn giản trong một trò chơi. Tôi hy vọng bạn có thể thực hiện một số việc sau:

Bạn muốn tìm khoảng cách phối hợp (x, y) của vật thể khỏi bom. Từ này tính toán góc. (ví dụ một đối tượng trên quả bom khi nó phát nổ sẽ có góc 90 hoặc pi/2.

Từ công việc này ra khỏi tội lỗi và cos của góc. Nhân nó bởi một số yếu tố lực F. (phụ thuộc con trai sức mạnh của quả bom và khoảng cách của vật thể từ bom.) Từ đó bạn có véc tơ di chuyển ban đầu {F * Math.cos (góc), F * Math.sin (góc)};

Từ đây nó chỉ là mặt phẳng Các đối tượng nên theo một con đường bậc hai thông qua không khí.Các phương trình có thể trông giống như:

object.setXCoord(object.getXCoord()+time_constant); //after initial explosion, no force is  
          //acting horizontally on object. 


object.setYCoord(object.getYCoord()-some_constant*time_constant+another_constant*time_constant*time_constant);// note Y's path 
                //relative to time is quardatic. 

Bạn có thể sẽ cần phải thêm một số phôi trong đó tùy thuộc vào loại bạn sẽ sử dụng. Tất cả các hằng số phụ thuộc vào trò chơi của bạn. time_constant cũng có thể là 1, nhưng tôi thấy việc thực hiện một bội số của 1 khiến cho vụ nổ trở nên hấp dẫn hơn. tức là thời gian đếm ngược của bạn, chuyển động của đối tượng có thể sử dụng time_constant 0,5. Tôi đã sử dụng rất nhiều bản dùng thử và lỗi để xem giá trị hằng số nào hoạt động tốt nhất.

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