libgdx Zeitprobleme

  • 11 Antworten
  • Neuester Beitrag
Diskutiere libgdx Zeitprobleme im Android App Entwicklung im Bereich Betriebssysteme & Apps.
T

Tekkkz

Neues Mitglied
Hallo! Ich habe ein paar Probleme mit der Zeit *g*

1. Spielt mal mein Spiel (link) bis 50 Punkten...die Röhren bleiben zu..warum?

2. Die Röhren gehen immer nach Schließen erst wieder Auf, wenn neuer Vogel spawnt, warum?

3. Die Röhren sollen eigl nur 1 Sec immer zu sein, habe ich da was falsch im Code?

DIe Datei in der ihr das wichtigste findet ist
Code:
SquishyBird/SquishyBird/src/com/coretek/squishybird/GameScreen.java
Bitte helft mir, danke!
 
markus.tullius

markus.tullius

Experte
Hallo, ich habe kurz in deinen Code geschaut. So ohne irgendwelche Kommentierungen macht es keinen Spaß den Fehler zu suchen.

Ich weiß nicht, ob es der Fehler ist. Du setzt die spamTime zwischenzeitlich auf den Wert 10. Und lässt sie nicht bei 1500.
Ich bin mir nicht sicher, ob das so gewollt ist (fehlende Kommentare).
Code:
if(spawnTime > 10){   
            spawnTime-=10;
 }
 
T

Tekkkz

Neues Mitglied
Dadurch soll die Spawn-TIme immer nur schneller werden damit es schwerer wird...hast du Fragen zum Code?
Der Fehler ist iwo ab (isTouched)
 
markus.tullius

markus.tullius

Experte
Du setzt die Variablen delayTime in der Funktion spawnBirds(). D.h. das Tor bleibt solange geschlossen, bist wieder ein Vogel erscheint.
Denn solange ist die Bedingung
Code:
TimeUtils.millis() - delayTime > 1000
erfüllt.

Mein Vorschlag wäre, das Öffnen der Röhren nicht an den Erscheinen des Vogels zu koppeln.
Versuche es mal damit:

Code:
if(TimeUtils.millis() - delayTime > 1000){[INDENT]...
delayTime = TimeUtils.millis();
[/INDENT]}
und streiche in delayTime = TimeUtils.millis() in spawnBirds(). Du muss die delayTime noch einmal als Anfangsbedingung setzen.
 
T

Tekkkz

Neues Mitglied
Danke, hat super geklappt, ich baue das jetzt ein...aber mache dich schonmal auf di enächste frage gefasst

Der ursprüngliche Beitrag von 22:00 Uhr wurde um 22:05 Uhr ergänzt:

So. wie kann ich die Röhren jetzt Smooth zumachen? bei isTouched:

for(int i = 0; i <96; i++){
Asstest.rect_pipe_down.y--);
}

SO klappt das aber nicht ganz, es geht einfach normal zu
 
T

Tekkkz

Neues Mitglied
Ich muss dazwischen auch ein DDelay MAchen, aber wo genau?
 
ui_3k1

ui_3k1

Gesperrt
Hey,

ich erkenne gerade auch keinen Fehler. Aber
(TimeUtils.millis() - smoothTime > 10)


sollte man so nicht schreiben. Auch wenn es in diesem Fall nicht den Fehler hervorruft besser:
((TimeUtils.millis() - smoothTime) > 10)



Hast du dir die x und y Werte schon mal mit Logcat ausgeben lassen?
 
T

Tekkkz

Neues Mitglied
Ja. Habe alles hinbekommen! :D Danke trotzdem
 
ui_3k1

ui_3k1

Gesperrt
An was hats gelegen? :)
Interessiert mich etwas, weil ich gestern bestimmt 20 Minuten gegrübelt habe und mir am ende gedacht hätte "so hätte ich das wahrscheinlich ähnlich aufgebaut" :D
 
T

Tekkkz

Neues Mitglied
Ich habe einfach eine FUnktion gemacht die mit einem int, keiner for-loop immer ++ macht und dann wartet ne bestimmte zeit
 
ui_3k1

ui_3k1

Gesperrt
Das muss ich mir merken. Denn diese "zeitäbhängigen" Programmschritte machen bei mir ebenfalls immer wieder Probleme. Mit nem Thread lässt sich da nämlich in den meisten Fällen auch keine Lösung darstellen - jedenfalls ist mir das mit nem Thread bis dato noch nie gelungen. :D