根据玩家面对的方式改变子弹方向

时间:2016-12-29 21:54:23

标签: javascript game-physics

我正在制作一个小平台游戏。我能够让玩家向右射击,但是当我试图让玩家向“朝向”的方向射击时,转向另一个方向,子弹改变他们的方向这也是我的Fiddle

<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data:">

1 个答案:

答案 0 :(得分:0)

您正在根据玩家面向的方向更新所有项目符号的位置。如果要保留每个项目符号的前进方向,则必须为每个项目符号存储它。

创建项目符号时存储位置变化(dx):

bullets.push({
  x: player.x,
  y: player.y,
  dx: facingLeft ? -10 : 10
})

使用以下方式绘制和更新所有项目符号:

bullets.forEach(function (bullet) {
  ctx.beginPath();
  cts.arc(bullet.x, bullet.y, 2, 0, Math.PI*2);
  ctx.fill();
  bullet.x += bullet.dx
})

注意:您正在使用&,即按位和运算符,而不是您可能要使用的&&

注2:您应该将玩家面对的方向存储在一个变量中:

var LEFT = 1
var RIGHT = 2
var playerFacing = LEFT