我试图编写一个小的副作用,使得玩家在停止移动时滑动一些像素。

但是他们在动画结束前有这个小的卡顿,我实在不知道我的脚本什么地方会导致这个问题。

这才是我的代码:

var oldWeight = 0.6;//原始权重
var newWeight = 0.5;//新的权重

//移动速度=运动控制的右键-左键
move = (key_right - key_left);

targetspeed = move * maxSpeed;//目标速度=移动速度*最大速度
isTurning = (move != 0 && move * movespeed < 0);//判断是否正在转弯

//判断是否已经转弯并且在转弯时且旧的速率小于新速率,不断减少旧速率
if (isTurning && !alreadyTurned)
{
  movespeed = (movespeed * oldWeight) + (targetspeed * newWeight);
  alreadyTurned = true;
}

//在非转弯状态下,alwaysTurned变成false
if (!isTurning)
  alreadyTurned = false;


//当move不等于零的时候(即正在移动时)
if (move != 0)
{
  movespeed = approach(movespeed, targetspeed, accel);//使动画更加平滑
} 
else 
{ 
  movespeed = approach(movespeed, 0, deccel);//使动画更加平滑
  //当运动速率较小时,重新指定运动速率为0
  if (Math.abs(movespeed) < move_axis)
    movespeed = 0;
}

hsp = movespeed;//运动速率

//当对象正向运动且运动速度大于move_axis时,设置向量的方向
if (face_direction && Math.abs(hsp) > move_axis)
{
  facing = sign(hsp);
  xscale = facing;
}