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