6

我试图在某个地方放一颗炸弹,当它爆炸时,它周围的所有东西都会飞走,速度取决于物体离炸弹有多近。就像黑鸟在愤怒的小鸟中爆炸一样。

谁能给我一个示例代码或一种方法(我正在使用andengine和box2d)

谢谢你

4

1 回答 1

7

如果它是现实的(ish),就像愤怒的小鸟一样,那么对于每个被炸弹炸开的物体,它都会遵循二次路径。

我不知道andengine 或box2d。但我在游戏中做过简单的 2d 爆炸和弹丸建模。我希望你能从以下内容中得到一些东西:

您会想找出物体与炸弹的 (x,y) 坐标距离。由此计算角度。(例如,炸弹上方的物体爆炸时的角度为 90 或 pi/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。我使用了大量的试验和错误来查看哪些常量值最有效。

于 2011-08-08T04:52:17.097 回答