如何将创建的组精灵分离为单个精灵

时间:2019-05-21 18:57:08

标签: javascript sprite

我正在尝试创建一个小型游戏,让一名士兵在小范围内移动并发射子弹。我是一个新程序员,几个月前才开始使用JavaScript,所以如果我的问题措辞不佳或代码很笨拙,我深表歉意。

我尝试使用[group] .get(i)隔离从枪中出来的每个单独的精灵,但它只会破坏程序并使之崩溃。

这是我(小型)程序的所有代码:

var soldier = createSprite(200, 200);
soldier.setAnimation("soldier_still");
var bullet = createGroup();
function draw() {
  background(rgb(100, 85, 45));
  move();
  attack();
  drawSprites();
}
function attack() {
  if (mouseWentDown("leftButton")) {
    for (var i = 0; i < 3; i++) {
      bullet.add(createSprite(soldier.x, soldier.y));
      bullet.setAnimationEach("bullet");
      bullet.pointToEach(World.mouseX, World.mouseY);
      bullet.setLifetimeEach(50);
      bullet.setSpeedAndDirectionEach(20, World.mouseX, World.mouseY);
    }
  }
}
function move() {
  createEdgeSprites();
  World.allSprites.bounceOff(topEdge);
  World.allSprites.bounceOff(bottomEdge);
  World.allSprites.bounceOff(leftEdge);
  World.allSprites.bounceOff(rightEdge);
  soldier.pointTo (World.mouseX,World.mouseY);
  if (keyDown() == false) {
    soldier.setAnimation("soldier_still");
    soldier.velocityX = 0;
    soldier.velocityY = 0;
  }
  if (keyDown("up")) {
    soldier.setAnimation("soldier_move");
    soldier.velocityY = -5;
  }
  if (keyDown("down")) {
    soldier.setAnimation("soldier_move");
    soldier.velocityY = 5;
  }
  if (keyDown("left")) {
    soldier.setAnimation("soldier_move");
    soldier.velocityX = -5;
  }
  if (keyDown("right")) {
    soldier.setAnimation("soldier_move");
    soldier.velocityX = 5;
  }
}

程序崩溃,或所有子弹精灵都面对鼠标的位置。无论如何,有什么我可以改进代码的方法,还是可以使每个组(子弹)子画面都有自己的子画面的解决方案?

0 个答案:

没有答案