AS3 - 在BitmapData中查找给定x坐标的最高y坐标?

时间:2012-10-06 07:23:17

标签: actionscript-3 flash collision-detection game-physics bitmapdata

我制作了一个平台游戏。以下是我到目前为止的内容:http://megaswf.com/s/2486396(用箭头键移动并跳转)。

我使用地面的位图数据来测试与玩家坐标的碰撞,并且玩家正在向地面下沉几个像素(特别是在上坡时)。为了防止这种情况,我希望玩家的坐标立即改变,以便玩家坐在地上。以下是我正在做的事情:

    if (groundClipBmpData.hitTest(rLoc, 255, bLocFuture)) {
        playerClip.y = ???
    }

我希望玩家的y坐标更改为在玩家的x坐标中成为groundClipBmpData的最高像素。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

就像我在另一个问题中说的那样:

使用while代替if

像这样:

while(groundClipBmpData.hitTest(rLoc, 255, playerClipBmpData, bLocFuture, 255))
{
        playerClip.y--;
}
playerClip.y++;

最快的方法是在数组中预先计算并存储最高坐标值,然后使用播放器的“x”位置来确定地面的“y”。