HTML5 JS-我如何使我的子弹/镜头在一个恒定的方向
HTML5 JS - How do I make my bullets/shots go in a constant direction?
我已经为项目符号代码苦苦挣扎了一段时间。我知道很可能有一个更简单的解决方案(事实上,我记得我以前做过类似的事情,但我就是记不起来了)。但无论如何;
问题:我的子弹射向四个方向,应该是这样。然而,如果我选择在发射后向不同的方向移动,子弹的方向和位置也会发生变化。
例如,如果我面朝上,发射3发子弹,然后向右移动,子弹会随着我改变方向和速度,相反,我希望它在我朝不同方向移动时继续朝那个方向移动。
这是子弹的代码;
function Bullet(w, h, s){
this.x = tank.x;
this.y = tank.y
this.width = w;
this.height = h;
this.speed = s;
}
//setInterval of firing
function setFire(){
tankCanFire = true;
}
//Create a new bullet
function fireBullet(){
if(tankCanFire){
tankCanFire = false;
bullets.push(new Bullet(5, 10, 15));
ctx.fillText("Ding", 300, 300);
}
}
//DRAW the Bullets + velocities.
function drawBullet(){
ctx.fillText("length = " +bullets.length, 200, 200);
if (bullets.length > 0){
for (var key in bullets)
{
ctx.fillText("DONG", 200, 250);
if (tank.up == true)
{
ctx.drawImage(bulletImage, bullets[key].x + 13, bullets[key].y - 8);
bullets[key].y -= 15;
if (bullets[key].y < 0)
delete bullets[key];
}
else if (tank.down == true)
{
ctx.drawImage(bulletImage, bullets[key].x + 13, bullets[key].y + 40);
bullets[key].y += 15;
if (bullets[key].y > 400)
delete bullets[key];
}
else if (tank.left == true)
{
ctx.drawImage(bulletImage, bullets[key].x - 8, bullets[key].y + 13);
bullets[key].x -= 15;
if (bullets[key].x < 0)
delete bullets[key];
}
else if (tank.right == true)
{
ctx.drawImage(bulletImage, bullets[key].x + 40, bullets[key].y + 13);
bullets[key].x += 15;
if (bullets[key].x > 600)
delete bullets[key];
}
}
}
}
在Bullet中,除了x、y、宽度、高度和速度之外,还需要存储特定子弹的前进方向。当前代码在移动子弹时会查看坦克的方向,因此如果你转动坦克,子弹的方向会改变。这也很有趣,但如果你想要传统的子弹,那么在子弹中存储它的方向是有意义的。
最简单的方法是存储,而不是速度,而是速度。类似这样的东西:
function Bullet(w, h, dx, dy){
this.x = tank.x;
this.y = tank.y
this.width = w;
this.height = h;
this.dx = dx; // how much x changes at every time step
this.dy = dy;
}
相关文章:
- jquery脚本只能在一个方向上正常工作
- JQuery后台位置似乎只在一个方向上起作用
- HTML5 JS-我如何使我的子弹/镜头在一个恒定的方向
- 有人能为我指明正确的方向,让一个javascript文件在另一个单独的javascript文件之后运行吗
- 在CSS的未来版本中,仅固定了一个方向的位置
- 使用 JavaScript 触发 CSS 动画淡入和淡出 - 仅适用于一个方向
- 柔性滑动器2在一个方向上继续循环而不工作
- Phaser Box2d-在一个方向上锁定拖动
- jQuery悬停在图像上,一个方向运行良好,另一个方向跳动
- Cordova屏幕锁定方向不是一个功能
- 在一个角度的方向上移动精灵
- 如何在移动应用程序上仅在一个页面上锁定方向
- Nivo Slider滑动解决方案(不总是在一个方向上滑动)
- 让一个箭头指向另一个标记的方向
- HTML画布以恒定的速度在一个方向上移动一个对象
- JQuery图像旋转动画,工作在一个方向,而不是另一个
- 只允许向一个方向拖动ng-drag元素
- 如何使圆形旋转滑块只改变一个方向
- 有没有办法在一个方向上缩放图像
- 仅在一个方向上移动的插件幻灯片