如果hitTestObject = true返回屏幕上的当前位置?

时间:2014-11-20 15:12:20

标签: actionscript-3 collision-detection game-physics flashdevelop

我正在进行2D平台游戏,而且我不知道如何设置与我的角色和平台的碰撞。

我基本上想要当fireboy1点击basePlatform时,fireboy1无法再进一步

到目前为止,我已经有了这个代码,我只是在努力理解if语句本身的内容。 我评论过我不确定的部分。

我不确定这是不是正确的方法。

public function platformCollision():void
    {
        if (fireboy1.hitTestObject(basePlatform))
        {
            fireboy1.y = fireboy1.y = //current position on screen?
        }
    }

2 个答案:

答案 0 :(得分:0)

如果您不希望fireboy1超过basePlatform,您应该执行以下操作:

fireboy1.y = basePlatform.y - fireboy1.height

请注意,这一切都取决于具有左上角方向的fireboy1和basePlatform。

答案 1 :(得分:0)

不需要hitTestObject .... 让我们假设fireboy和基础平台的注册点位于其中心:

public function loop(e:Event){
 if(fireboy1.y + fireboy1.height > basePlatform.y - basePlatform.height){
  fireboy1.y = basePlatform.y - fireboy1.height;
 } 
}