Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据玩家面对的方式改变子弹方向_Javascript_Game Physics - Fatal编程技术网

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

Javascript 根据玩家面对的方式改变子弹方向,javascript,game-physics,Javascript,Game Physics,我正在制作一个小平板,我可以让玩家向右射击,但当我试图让它朝玩家“面对”的方向射击时,反过来,子弹也会改变方向,这是我的建议 if(键[13]&&Date.now()-lastFire>100){ 子弹,推({ x:player.x, y:玩家,y, }); lastFire=Date.now(); } 对于(var i=0;i你正在根据玩家面对的方向更新所有子弹的位置。如果你想保留每个子弹的前进方向,你必须为每个子弹存储它 创建项目符号时,存储位置更改(dx): bullets.push({

我正在制作一个小平板,我可以让玩家向右射击,但当我试图让它朝玩家“面对”的方向射击时,反过来,子弹也会改变方向,这是我的建议

if(键[13]&&Date.now()-lastFire>100){
子弹,推({
x:player.x,
y:玩家,y,
});
lastFire=Date.now();
}

对于(var i=0;i你正在根据玩家面对的方向更新所有子弹的位置。如果你想保留每个子弹的前进方向,你必须为每个子弹存储它

创建项目符号时,存储位置更改(
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
})
注意:您使用的是按位and运算符
&
,而不是您可能需要使用的
&

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

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

谢谢你的回复,但对我来说不起作用,当我尝试射击时,游戏会冻结。哈哈,对不起,我忘了,给你:D
var LEFT = 1
var RIGHT = 2
var playerFacing = LEFT