Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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
Java 以不同的间隔产卵精灵_Java_Android_Sprite - Fatal编程技术网

Java 以不同的间隔产卵精灵

Java 以不同的间隔产卵精灵,java,android,sprite,Java,Android,Sprite,如果你看到了,就忘了前一个 public void createNormZomb(){ normZombie.add(createSprite(R.drawable.zombie1)); normZomb.postDelayed(this, 1000); } @Override public void run() { normZombie.add(createSprite(R.drawable.

如果你看到了,就忘了前一个

public void createNormZomb(){ 

                normZombie.add(createSprite(R.drawable.zombie1));
                normZomb.postDelayed(this, 1000);
            }

@Override
public void run() {
    normZombie.add(createSprite(R.drawable.zombie1));
    normZomb.postDelayed(this, 1000);

}
所以基本上我让它做我想做的。每1秒它就会产生另一个僵尸。唯一的缺陷是当它运行30秒左右时,它会强制关闭。直到时间过去,一切都很好。(仅供参考,it正在顶部实施可运行) 如果有人知道为什么它会在这么长时间后关闭,我会非常感激

(如果有人知道我应该怎么做,请注意,因为我习惯使用xml。由于我不使用xml,如何在屏幕上用代码显示分数和计时器。还有什么好方法可以编写以秒计的计时器。)


谢谢大家:)

我想问题在于设置
时间=5
。如果执行
x%5
,则无法得到5。如果我试着把23除以5,答案是4,余数是3,
23=4*5+3
。因此,
23%5=3
。希望这能解决你的问题(我改变了一些事情…):

受保护的void onDraw(画布){
画布。drawColor(颜色。黑色);
对于(int i=0;i//为了(int i=0;它是模数。我没有注意到。问题是它现在同时产生了12个。我需要设置它,以便在连续循环中一次只能产生1个。我需要让它一遍又一遍地重复onDraw的那一部分,因为它只产生了12个,没有更多的出现。谢谢你在当然方向是正确的。在logcat上放一个堆栈跟踪,看看是什么导致了forceclose+1的僵尸问题。
protected void onDraw(Canvas canvas) {
  canvas.drawColor(Color.BLACK);
  for (int i = 0; i < temps.size(); i++) {
  //or was there a reason to do the loop backwards...?
    temps.get(i).onDraw(canvas);
  }

  for (Sprite sprite : normZombie) {//for each normZombie do:
    //for(int i=0; i<normZombie.size();i++) no need to loop again, right?

    long startTime=System.currentTimeMillis();                      
    long elapsed=(System.currentTimeMillis() - startTime) / 1000;
    int time = 3;//,0,1,2 or 4
    if(elapsed % 5 == time)
      sprite.onDraw(canvas);
    }
  }

private void createSpritesNorm(){         
  for (int i = 0; i < 12; i++) {
    normZombie.add(createSprite(R.drawable.zombie1));//do this 12 times
  }
}