Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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_Sprite - Fatal编程技术网

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

Javascript 如何将创建的组精灵分离为单个精灵,javascript,sprite,Javascript,Sprite,我正在尝试创建一个小游戏,让一名士兵在一个小区域内移动并发射子弹。我是一名新的程序员,几个月前才开始使用javascript,因此,如果我的问题措词不当或代码笨拙,我深表歉意 我曾尝试使用[group].get(I)来隔离从枪中出来的每个精灵,但它只是破坏并崩溃了程序 以下是我的(小)程序的所有代码: var soldier = createSprite(200, 200); soldier.setAnimation("soldier_still"); var bullet = createGr

我正在尝试创建一个小游戏,让一名士兵在一个小区域内移动并发射子弹。我是一名新的程序员,几个月前才开始使用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;
  }
}
var-soldier=createSprite(200200);
士兵.setAnimation(“士兵仍然”);
var bullet=createGroup();
函数绘图(){
背景(rgb(100,85,45));
move();
攻击();
drawSprites();
}
函数攻击(){
如果(鼠标向下移动(“左键”)){
对于(变量i=0;i<3;i++){
bullet.add(createSprite(soldier.x,soldier.y));
bullet.setAnimationEach(“bullet”);
bullet.pointToEach(World.mouseX,World.mouseY);
bullet.SetLifetime每个(50);
bullet.setSpeedAndDirectionEach(20,World.mouseX,World.mouseY);
}
}
}
函数move(){
createEdgeSprites();
World.allSprites.bounceOff(topEdge);
World.allSprites.bounceOff(底边);
World.allSprites.bounceOff(左边缘);
World.allSprites.bounceOff(右边缘);
soldier.pointTo(World.mouseX,World.mouseY);
if(keyDown()==false){
士兵.setAnimation(“士兵仍然”);
soldier.velocityX=0;
soldier.velocityY=0;
}
如果(按键向下(“向上”)){
士兵。设置动画(“士兵移动”);
soldier.velocityY=-5;
}
如果(按键向下(“向下”)){
士兵。设置动画(“士兵移动”);
士兵速度y=5;
}
如果(向下键(“左”)){
士兵。设置动画(“士兵移动”);
soldier.velocityX=-5;
}
如果(按下键(“右”)){
士兵。设置动画(“士兵移动”);
soldier.velocityX=5;
}
}

程序要么崩溃,要么所有子弹精灵都面对鼠标的位置。是否有任何方法可以改进我的代码,或者有一个解决方案使每个组(子弹)精灵都有自己的单独精灵?

看起来你在使用一个库(精灵没有内置到JS中);你在用什么图书馆?如果我们知道的话,人们会更容易提供帮助。看起来你正在使用一个库(精灵没有内置到JS中);你在用什么图书馆?如果我们知道的话,人们会更容易帮忙。