对于练习,我使用AS3在Flash中编写一个非常简单的2D平台游戏。我想根据经典的平台元素定义玩家可以走的两种不同类型的地形表面。 Type1:玩家可以继续行走,如果玩家跳跃,他们会在它上面撞击并反弹回地面。 Type2:玩家也可以继续前行,但如果玩家跳跃并击中他们的头部,他们只会穿过表面而不会反弹回地面。
我正在使用hitTestPoint解决此问题的冲突。 我的问题是:测试我碰撞的地面类型的最佳方法是什么?每个地面类型都有自己的类,在我的Flash IDE中与它相关联,所有不同的地形表面类型在舞台上的同一个影片剪辑。
目前我正在测试它是否会碰到一种地面,然后我会测试它是否碰到另一种,然后根据这些结果,我处理我想要发生的事情。这似乎现在可行,但我想我可能想要创建超过2种类型的地面来碰撞。例如,移动平台。似乎代码将开始变得复杂
例如
if(_groundType1.hitTestPoint(_player.x, _player.y, true))
{
if(_groundType2.hitTestPoint(_player.x, _player.y, true))
{
//don't hit the players head
}
//hit the players head
}
答案 0 :(得分:0)