我正在制作一个小平台游戏。我能够让玩家向右射击,但是当我试图让玩家向“朝向”的方向射击时,转向另一个方向,子弹改变他们的方向这也是我的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:">
答案 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