2016-05-14 16 views
1

Ich versuche, einen Effekt für mein Spiel zu machen, dass, wenn der Spieler es benutzt, der Charakter schneller läuft, aber ich möchte den sodaEffect für eine bestimmte Zeitmenge dauern lassen, aber ich bin nicht sicher, wie man das macht. Ich benutze Slick2D und LWJGL, um das Spiel zu machen.Wie mache ich Boolean für eine bestimmte Zeit?

public class MainMap extends BasicGameState { 

    if(input.isKeyPressed(Input.KEY_I)) { 
     sbg.enterState(5); 
    } 
    if(InventoryClass.sodaEffect == true) { 
     InventoryClass.characterSpeed = 1f; 
    } 
    else{ 
     InventoryClass.characterSpeed = .1f; 
    }} 

    public class InventoryClass { 

    public static boolean sodaEffect = false; 
    } 
+0

Schauen Sie in Timer. Java hat einen eingebauten, aber Ihre Bibliotheken können auch etwas bieten. – computerfreaker

Antwort

2

Ohne exactely zu wissen, was Ihre InventoryClass tut, würde ich so etwas tun:

public class InventoryClass { 
    private final static long SODA_DURATION = 5000L; 
    private static long sodaStartTime; 

    public static void startSodaEffect() { 
     sodaStartTime = System.currentTimeMillis(); 
    } 

    public static boolean hasSodaEffect() { 
     return (System.currentTimeMillis() - sodaStartTime) < SODA_DURATION; 
    } 
} 

Mit diesem Ansatz keine zusätzliche Bibliotheken benötigen.