【问题标题】:How to animate an explosion that blows the surrounding bodies away? [closed]如何制作将周围物体炸开的爆炸动画? [关闭]
【发布时间】:2011-10-22 02:30:22
【问题描述】:

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

谁能给我一个示例代码或一种方法来做到这一点(我正在使用带有box2d的andengine)

谢谢

【问题讨论】:

标签: android box2d android-animation andengine


【解决方案1】:

如果它要像《愤怒的小鸟》那样逼真,那么对于被炸弹炸开的每个物体,它都会遵循二次路径。

我不知道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。我进行了大量的试验和错误,以了解哪些常量值最有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 2016-05-18
    • 2015-03-21
    • 2016-07-31
    相关资源
    最近更新 更多