2017-02-05 49 views
1

所以我有這個小小的2D遊戲,我只是在努力。我在Java中並不擅長,但我確實瞭解很多。但是我想這樣做,當我的角色發射一顆子彈時他不能再發射2秒。或者任何延遲。我已經嘗試過多種方式,但它不能與我試圖達到的目標一致。這是我用來發射子彈的。在java中的計時器(延遲行動)

if (Mouse.next() && Mouse.isButtonDown(0)) { 
     t.scheduleAtFixedRate(task, 0, 10000); 
     Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0))); 
    } 

感謝

+0

一個簡單的方法是將存儲在一個變量最後一槍的時候,檢查每次鼠標點擊,如果時間戳比2秒以上。但是還有更多的方法來實現你想要的。 – Blobonat

回答

1
  1. 保存最後一槍時存儲最後一個鏡頭的時間在這個變量
  2. 創建類變量比較當前時間和變量對拍攝事件價值,並決定是允許再次射擊或不射擊。

喜歡的東西:

if (Mouse.next() && Mouse.isButtonDown(0) && (System.currentTimeMillis() - lastShotTime >= 2000)) { 
    t.scheduleAtFixedRate(task, 0, 10000); 
    Game.bullets.add(new Bullet(new Vector2f(position.x + 25, position.y + 19), new Vector2f(position.x, 0))); 
    lastShotTime = System.currentTimeMillis(); 
} 
+0

我如何比較變量與其他? – Stefan

+0

------- whaaat ??? – Andremoniy

+0

沒關係得到它的工作,非常感謝。 – Stefan