我有重力和跳跃“工作”。当您离开平台时,您会慢慢下落,直到再次与地板相撞,但玩家跳跃基本上是向上传送,而不是平稳地增加然后降低高度。我尝试在逻辑上结合 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;
}