使用hitTestPoint的2D平台游戏:故障

时间:2014-01-06 19:08:45

标签: actionscript-3 flash

所以我创建了自己的2d平台游戏代码(如Mario)。我决定使用hitTestPoint方法来处理我的碰撞。它像黄油一样顺畅,一切都很完美。角色可以完美地上下移动。 我创建游戏的下一步是将我的角色(当时是一个区块)变成一个人物角色,可以进入标有“步行”,“跳跃”和“站立”的帧。两个角色作成变量之后的状态“运行”和“立”我的编码字符去帧标签“运行”,如果左或右方向键是向下,而“立”在角色不跑,跳或下降。然后代码工作正常,但是发生了很多问题,例如随机穿过墙壁和传送斜坡的角色。 我仍然有两个版本(工作和glitched)。除了更改帧的角色影片剪辑外,代码未被更改。我完全不知道为什么这个角色现在就像这样。如果有人之前遇到过这样的问题,或者知道背后的问题是什么,请帮助我!

Drake Swartzy

2 个答案:

答案 0 :(得分:2)

您的样本很可能不够频繁(使用您正在使用的实施方案)来检测碰撞。

enter image description here

如果频率足够低,您将更新角色的位置,然后测试它是否与目标重叠。这意味着(如果你的速度足够快),你可能完全错过了碰撞。

更好的方法可能是使用光线投射。见How do I handle collision detection so fast objects are not allowed to pass through walls?

答案 1 :(得分:0)

非常感谢帮助Atriace!对不起,我实际上刚刚发现了这个问题......代码很奇怪,因为当我改变角色的scaleX值时(当角色转向方向时),它也影响了嵌套在角色中的点。这些点用于处理角色碰撞。因此,这就是为什么角色在X值时表现得很奇怪。但是,在这样的情况下,你的答案肯定是可能的。再次感谢您的帮助。

干杯, Drake Swartzy