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
}
}