需要关于愤怒的鸟类物理学的帮助

时间:2012-04-21 08:32:04

标签: matlab physics

作为一个学校项目,我采取了在matlab中制作愤怒的小鸟克隆。经过一段时间的努力,我意识到也许我会更多,然后我可以咀嚼。

目前我正在研究它的物理学,虽然我理解游戏背后的机制(碰撞,惯性和诸如此类),但我不知道我将如何在游戏中实现它。我是编程的新手,但我喜欢它并且很快就抓住了它。

在愤怒的小鸟中,我们正在处理几个OBB之间的碰撞,我有一个检测碰撞的算法。我有一个功能,检查每个框的所有角落,并查看它是否在另一个框内。我意识到这不是最好的方法,但由于我无法想象分离轴定理,我选择不使用它。

当发生碰撞时,框会穿透到另一个框中,当发生这种情况时,我会在其前一个点和当前点之间进行线性插值。我对一个实例中的所有碰撞点执行此操作(这是我解决多个碰撞的方法)。使用插值我检测发生的第一次碰撞,并实现碰撞响应。

我目前的问题是,当有一个盒子放在另一个盒子的顶部时,这种方法不能很好地工作,因为在每种情况下,顶盒都会轻微地穿入底部,然后我将它弹回。这导致我的整个事情停止,因为我回到过去,解决碰撞,然后在下一个例子中再次发生碰撞。

我的问题是,我如何解决多个盒子彼此叠加的问题。

我已经通过http://www.wildbunny.co.uk查看了有关物理学的所有文章,并试图了解他的方法,但是当我理解他的作用时,我不知道他是如何做到的。我也不知道任何动作脚本这么多他的代码对我来说是胡言乱语。

我已经浏览了互联网上的其他几个指南,但似乎没有一个对我有意义。

这对我有什么帮助,如果有人能告诉我通常用什么方法来实现像愤怒的小鸟这样的游戏图形,特别是多重碰撞方法(我的足够好或者做得好)我需要在他的博客中做像wildbunny谈论的投机性联系人,以及关于盒子问题的方框。

这个项目难以进行两周吗?

1 个答案:

答案 0 :(得分:5)

是的,在matlab中实现一个强大的多体物理引擎,从头开始,没有使用物理引擎和没有编程经验的经验,这对于为期两周的项目来说太难了。