我正在製作一個小小的java遊戲,而且我必須使用雙重命名的電池。 定期減少,有時增加。這裏是我的方法:消失的變量的變化
public void agirBatterie() {
for(Element e:elementsTableau){
if(e instanceof Spire){
System.out.println("before : "+((Spire)e).getBatterie());
((Spire)e).diminuerBatterie();
System.out.println("after: "+((Spire)e).getBatterie());
if(((Spire)e).isAugmentationBatterie()){
((Spire)e).augmenterBatterie();
}
}
}
i =0;
}
的diminuerBatterie方法做了BATTERIE - - ,而augmenterBatterie方法確實BATTERIE = BATTERIE +10。如果可以幫忙,這種方法每秒調用大約6次。 當我執行它,我得到的是這樣的:
before: 82.0
after : 81.0
before : 92.0
after : 91.0
before : 81.0
after : 80.0
我不明白爲什麼BATTERIE下降,然後收回其原值,而有使用這個變量而沒有其他的方法。 感謝您的幫助
編輯:這裏是diminuerBatterie()
和augmenterBatterie()
方法:
public void augmenterBatterie() {
batterie = batterie+10;
augmentationBatterie = false;
}
public void diminuerBatterie() {
if(batterie>0){
batterie--;
}
}
顯示增加或減少「batterie」方法的代碼 –
你有多線程嗎? – SJuan76
@ SJuan76是的,我使用多線程,但我不認爲這可能是我的問題的原因,因爲只有一個線程使用batterie變量(但我可能是錯的)。 – pp0893