2010-07-10 128 views
0

练习中,我使用AS3在Flash中编写了一个非常简单的2D平台游戏。我想定义两种不同类型的地形表面,玩家可以根据经典的平台元素来行走。类型1:玩家可以继续前进,如果玩家跳跃,他们会将头撞上并弹回地面。 Type2:玩家也可以继续前进,但如果玩家跳跃并击中头部,他们只会穿过表面而不会弹回地面。如何从HitTest获取对象类型?

我正在使用hitTestPoint来解决冲突。 我的问题是:什么是最好的方法来测试我与什么类型的地面碰撞?在我的Flash IDE中,每种地面类型都有它自己的类,并且所有不同的地形表面类型都在舞台上的同一个影片剪辑中。

目前我正在测试它是否碰到某种类型的地面,然后我测试它是否碰到另一个地面,然后基于这些结果,我处理我想要发生的事情。这看起来好像现在还行,但我想象着我可能想创造超过两种类型的地面与之相撞。例如,移动平台。似乎代码将开始变得复杂

例如。

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 
} 

回答