重力とジャンプが「機能」しています。プラットフォームから降りると、床に再び衝突するまでゆっくりと落下しますが、プレイヤーのジャンプは基本的に、高度が滑らかに上昇してから下降するのではなく、上向きにテレポートします。if ステートメント 1&3/2&4 を論理的に組み合わせて、プレーヤーが床に触れたときにジャンプしたり、歩き去ったときにスムーズに落下したりできることを示してみましたが、エラーが発生し、プレーヤーが画面から消えてしまいます。私の最終目標は、プラットフォームを降りるときのスムーズなジャンプとスムーズな落下です (速度を合わせます)。
注:gravity = 1
、、vertSpeed = Infinity
private function checkFalling(newY):void
{
var hitFloor:Boolean = HitTest.complexHitTestObject(player, floor, 1);
if (hitFloor)
{
trace("Grounded");
vertSpeed = Infinity;
}
if (!hitFloor)
{
trace("Floating");
vertSpeed = 1;
//newY += vertSpeed;
}
if (vertSpeed == Infinity)
{
if (zKeyPressed)
{
vertSpeed = jumpStart;
}
}
if (vertSpeed != Infinity)
{
trace("pushing");
vertSpeed += gravity;
newY += vertSpeed;
}
player.y = newY;
}