我有一个Timer Task,可以更新所有玩家位置:
public void run(){
updateWatcher = new TimerTask() {
public void run() {
update(0.1);
}
};
t.scheduleAtFixedRate(updateWatcher, 5, 5);
}
我还有另一个TimerTask,它会更新所有射弹位置:
UpdateWatcher = new TimerTask() { //Different variable. Note the capital U.
public void run() {
for (Bullet b : bullets){
b.update();
}
}
};
t.scheduleAtFixedRate(UpdateWatcher, 5, 5);
}
然而,第二个TimerTask正在减慢第一个。如果我删除迭代,就像这样:
UpdateWatcher = new TimerTask() {
public void run() {
}
};
t.scheduleAtFixedRate(UpdateWatcher, 5, 5);
}
玩家以正确的速度移动。但是,只要我重新添加代码(使用Eclipse de-bugging将其直接添加),延迟任务的执行频率就会降低很多,导致玩家的移动速度比平常慢10倍。
可能导致这种情况的原因,我该如何解决?