2011-08-08 57 views
6

我想把炸彈放在某個地方,當它爆炸時,它的每一個東西都會飛走,速度取決於炸彈對象的距離。當黑鳥在憤怒的小鳥中爆炸的時候。如何動畫爆炸,吹走周圍的屍體?

任何一個可以給我一個示例代碼還是有辦法做到這一點(我使用與Box2D的andengine)

謝謝

+3

有一刻,我很擔心 – snowflakekiller

+1

你應該修改這個問題,所以指向編程更合適 –

+0

有很多方法可以做到這一點。這裏有一些有趣的討論:http://box2d.org/forum/viewtopic.php?f=3&t=1688 – iforce2d

回答

7

如果它要成爲現實(ISH),像憤怒的小鳥,然後對於被炸彈炸開的每個物體,它將遵循二次方程。

我不知道andengine或box2d。但是我在一場比賽中完成了簡單的二維爆炸和彈丸造型。 我希望你能採取以下幾點:

你會想找出對象從炸彈的(x,y)座標距離。從這個角度計算。 (例如炸彈爆炸時的物體角度爲90°或π/ 2)

由此計算出角度的sin和cos,乘以某個力的因子F.從這裏你有你的初始運動矢量{F * Math.cos(angle),F * Math.sin(angle)};

從這裏出來它只是平面。運動學對象應遵循通過空氣的二次路徑的方程可以看起來像:

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. 

你可能需要在裏面取決於什麼類型添加一些石膏你會用。所有的常量取決於你的遊戲。 time_constant很可能是1,但我發現做1的倍數使爆炸更具視覺吸引力。即當你的時間計數器t增加時,物體的運動可以使用time_constant 0.5。我使用了很多試驗和錯誤來看看哪些常數值的效果最好。