0

好的,我已经阅读了一些关于基本平台游戏创建的文章,人们说这是最难的部分——在高速下进行正确的碰撞。事实上,即使我有 60 fps,也很难追踪以每滴答声 50-100 像素移动的对象。问题是,如果它撞到墙上,它会穿过它,检测到走得太远,然后将物体返回到速度为 0(或弹跳)的墙旁边的定义点。但是如果我在舞台中间有一个 5 像素的墙,即使在低速时也可能会错过碰撞。是的,你会说“制作 2 个区域,检查对象是否在一个区域中,另一个区域将是一个完整的 hitTest 区域以从中返回”但是如果我需要一个随机绘制的墙壁迷宫怎么办?什么是使薄壁物体不会通过的好方法?

想到平台游戏,我记得恶魔城和银河战士,它不是 AS3,但是,也许你知道他们是如何做到如此流畅的吗?帧数好?预测碰撞?或者没有人会像弹跳的子弹一样做出疯狂的速度?

在我深入编码之前,我真的可以使用一些想法。我希望至少知道我正在朝着正确的方向前进,即使这很困难。为了不以 1000 行结尾,不记得 1 个单个对象的 CPU 负载在哪里,@ 95% XD 我现在的猜测是在对象的右、左、上和下制作 4 个不可见的块,并分别计算每个侧面碰撞。但它可能会在角落变得难看。8个街区吧?

4

1 回答 1

1

目前,您正在检查对象是否在帧发生的确切时刻与墙壁相交,但实际上您想知道对象是否在最后一帧和现在之间与墙壁相交。您可以想象在对象之前的位置和现在的位置之间有一条线,因此基本上您需要检查该线是否与墙壁的线相交。

它已经很老了,但是 tonypa 有一个很好的教程它涵盖了所有的基础知识。

于 2013-02-23T15:56:30.933 回答