我试图在某个地方放置炸弹,当它爆炸时,它周围的每一个东西都会飞走,速度取决于物体与炸弹的接近程度。 就像黑鸟在愤怒的小鸟中爆炸一样。
任何人都可以给我一个示例代码或方法(我使用带有box2d的andengine)
谢谢
答案 0 :(得分:7)
如果它像愤怒的小鸟一样是现实的(ish),那么对于被炸弹炸开的每个物体,它将遵循二次路径。
我不知道andengine或box2d。但是我在游戏中做了简单的2d爆炸和弹丸造型。 我希望你能从以下方面采取一些措施:
你想要找出物体与炸弹的(x,y)坐标距离。由此计算出角度。 (例如,爆炸时炸弹上方的物体将具有角度90或π/ 2。
从这个角度出发的角度和角度来看。将它乘以一些力因子F.(取决于炸弹的强度和物体与炸弹的距离。)从这里你得到你的初始运动矢量{F * Math.cos(角度),F * Math.sin(角度) )};
从这里出来它只是飞机运动学。物体应遵循通过空气的二次路径。方程式可能类似于:
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的倍数使爆炸更具视觉吸引力。即,当您的时间计数器增加时,对象的移动可以使用time_constant 0.5。我使用了大量的反复试验来确定常数值的最佳值。