我需要为我的2d Java swing游戏制作爆炸动画。 我需要它有多个黄色矩形,字面意思是“爆炸”。 我的解决方案是给每个矩形一个不同的x和y,因为每个矩形都必须转到另一个方向。问题是,我不知道如何有效地做到这一点。对不起英语不好,请帮帮我。任何帮助都是适用的
答案 0 :(得分:1)
以下是您需要做的非常粗略的概述。对于任何更复杂的事情,你真的需要一个更强大的物理引擎。
矩形的每一部分都由一个类的实例(Piece
表示,我们应该调用它吗?)。当矩形爆炸时,所有这些Piece
都会生成。 Piece
类存储x和y位置的信息,它们在x和y轴上的速度,以弧度存储的旋转以及它们的角速度。如果您只是为了获得基本的爆炸效果,所有这些值几乎可以随机生成。
你将不得不经常计算游戏的物理特性(不断模拟物理“滴答”)并不断地将碎片绘制到组件上。这可能意味着两个独立的循环,或者你可以一起完成它们 - 只是不要淹没EDT。
“tick”是以恒定速率(例如每秒30次)应用的操作,并执行以下操作:
勾选完成后,您可以在组件上调用repaint()
。该组件可以迭代Piece
类,但您可以在屏幕上渲染它们(不要忘记旋转)。
希望这能让你开始。当你在物理引擎中寻求可伸缩性时,显然需要进行大量的更改和验证 - 但这应该可以让你了解这个概念是如何工作的。我还没有提到同步,如果你正在处理Swing和物理循环,你肯定需要考虑这些同步。
如果您想更多地研究物理引擎,我建议this series。希望你喜欢数学。