2017-05-22 3 views
1

Ich machte eine springende Animation, aber wenn ich den Bildschirm berühre, stoppt die Animation. HierProbleme mit springender Animation

ist der Code:

boolean touching = Gdx.input.isTouched(); 
    long elapsed = (System.currentTimeMillis() - startTime)%1000; 

    if (touching){ 
     float jump = 500 * (float)Math.sin(((Math.PI*2)/1000)*(elapsed/2)); 
     sprite.setPosition(Gdx.graphics.getWidth()/2,jump); 
    } 

Wie mache ich die Animation beenden, nachdem ich den Bildschirm zu berühren stoppen? Hier

ist ein gif des Codes läuft:

enter image description here

+0

Ihr aktuelles Ergebnis 'aufhören, den Bildschirm zu berühren, stoppt die Animation.' und Sie wollen' Animation beenden, nachdem ich den Bildschirm berühre', was ist der Unterschied zwischen diesen beiden, denke ich nur von Wort 'stop' und' fertig? – Aryan

+0

Wenn ich aufhören zu berühren, gefriert das Sprite in der Luft. Aber ich möchte, dass es die Animation beendet, bis es den Boden trifft –

+0

Okay, hab es schon beantwortet, check das – Aryan

Antwort

2

Ich denke, was Sie erreichen wollen ist durch eine einzige Berührung zu springen und lassen Sie es fertig. Ich würde irgendeinen Staat benutzen, um das zu tun. Derzeit wird der Code in Ihrer Anweisung nur beim Berühren ausgeführt.

Wenn ein Benutzer den Bildschirm berührt, können Sie boolean jumping auf true setzen. Dann überprüfen Sie if (touching) für if (jumping). Hier stellst du den Code für den Sprung ein. Wenn jemand während des Springens auf den Bildschirm drückt, darf er nicht zurückgesetzt werden (außer bei einem Doppelsprung). Und immer wenn die Einheit den Boden berührt, sollte der Sprung wieder auf false zurückgesetzt werden.

+0

Vielen Dank, es funktioniert jetzt! –