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 に答える