android - 如何制作将周围物体吹走的爆炸动画?

标签 android box2d android-animation andengine

<分区>

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

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

谢谢

最佳答案

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

我不知道 andengine 或 box2d。但是我在游戏中做过简单的 2d 爆炸和射弹建模。 我希望你能从以下内容中有所收获:

您可能想找出物体与炸弹的 (x,y) 坐标距离。由此计算角度。 (例如,炸弹上方的物体爆炸时的角度为 90 或 pi/2。

由此算出角度的正弦和余弦。将它乘以一些力因子 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。我通过大量试验和错误来了解哪些常量值最有效。

关于android - 如何制作将周围物体吹走的爆炸动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6977689/

相关文章:

java - box2d libgdx - 'binding' Sprite 或其他对象的 box2d 主体

android - 我可以更改 Android Layout Transition 的行为以消除淡入淡出但保持高度动画吗?

android - 在 genymotion 上安装谷歌应用

android - 区分APK文件?

Android:OTG 存储通知与 radio c 冲突

android - 翻译动画部分的屏幕变为空白

java - 如何平移 View ,但保持其原始起始位置

android - 无法使用带有 stripwhitespace 选项的 libGDX 纹理打包器打包分辨率为 800x800 的图像?

java - body.getTransform().setRotation(value) 在 box2d 中不起作用

java - 如何将 LibGDX 相机与 Box2D 调试渲染器一起使用