1

我正在制作一个平台游戏。到目前为止,这是我所拥有的:http: //megaswf.com/s/2486396(四处移动并用箭头键跳跃)。

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

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

我希望玩家的 y 坐标变为玩家 x 坐标处 groundClipBmpData 的最高像素。

我怎样才能做到这一点?

4

1 回答 1

0

就像我在另一个问题中所说:

使用while代替if

像这样:

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

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

于 2012-10-06T07:35:09.377 回答