移除出界对象:
if(sprite.x - sprite.width / 2 > right || sprite.x + sprite.width / 2 < left || sprite.y – sprite.height / 2 > bottom || sprite.y + sprite.height / 2 < top) { // 移除影片的代码 }
重置出界对象:
if(sprite.x - sprite.width / 2 > right || sprite.x + sprite.width / 2 < left || sprite.y – sprite.height / 2 > bottom || sprite.y + sprite.height / 2 < top) { // 重置影片的位置和速度 }
屏幕环绕出界对象:
if (sprite.x - sprite.width / 2 > right) { sprite.x = left - sprite.width / 2; } else if (sprite.x + sprite.width / 2 < left) { sprite.x = right + sprite.width / 2; } if (sprite.y – sprite.height / 2 > bottom) { sprite.y = top – sprite.height / 2; } else if (sprite.y + sprite.height / 2 < top) { sprite.y = bottom + sprite.height / 2; }
摩擦力应用(正确方法):
speed = Math.sqrt(vx * vx + vy * vy); angle = Math.atan2(vy, vx); if (speed > friction) { speed -= friction; } else { speed = 0; } vx = Math.cos(angle) * speed; vy = Math.sin(angle) * speed;
摩擦力应用(简便方法):
vx *= friction; vy *= friction;