我制作了一个平台游戏。以下是我到目前为止的内容:http://megaswf.com/s/2486396(用箭头键移动并跳转)。
我使用地面的位图数据来测试与玩家坐标的碰撞,并且玩家正在向地面下沉几个像素(特别是在上坡时)。为了防止这种情况,我希望玩家的坐标立即改变,以便玩家坐在地上。以下是我正在做的事情:
if (groundClipBmpData.hitTest(rLoc, 255, bLocFuture)) {
playerClip.y = ???
}
我希望玩家的y坐标更改为在玩家的x坐标中成为groundClipBmpData的最高像素。
我该怎么做?
答案 0 :(得分:0)
就像我在另一个问题中说的那样:
使用while
代替if
像这样:
while(groundClipBmpData.hitTest(rLoc, 255, playerClipBmpData, bLocFuture, 255))
{
playerClip.y--;
}
playerClip.y++;
最快的方法是在数组中预先计算并存储最高坐标值,然后使用播放器的“x”位置来确定地面的“y”。