新しいスレッドを作成して開始します。runメソッドには次のコードがあります。
for (int a=0; a<10; a++) {
System.out.println(a);
Thread.sleep(10);
}
そして私が得るものは:
0
0
1
1
2
0
2
3
1
0
3
4
2
1
0
4
5
3
2
1
0
5
6
4
... 等々。なぜ私は得られないの1 2 3 4 5 6 7 8 9
ですか?どういう理由ですか?
編集:
スレッドコード:
private class WarpEnemyRnn implements Runnable {
private WarpEnemy enemy;
public WarpEnemyRnn(WarpEnemy enemy) {
this.enemy = enemy;
}
@Override
public void run() {
try {
for (int a=0; a<8; a++) {
System.out.println(a);
enemy.subOpacity();
Thread.sleep(refreshRate);
}
Point2D warpPoint = enemy.warp();
enemy.setX((int) warpPoint.getX());
enemy.setY((int) warpPoint.getY());
enemy.resetWarpCooldown();
for (int a=0; a<8; a++) {
enemy.addOpacity();
Thread.sleep(refreshRate);
}
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
15msごとに実行される他のスレッドで新しいスレッドが作成されます。何らかの条件が一致した場合にのみ作成されます。