2017-09-30 1 views
0

Ich habe einen Sprite, den ich in der Rendermethode zeichne, ich setze auch die Position (x und y) auf dem Bildschirm dort während des Zeichnens.Wie man ein Sprite Gerät-unabhängig entlang der X-Achse bewegt (libgdx)

Die Render-Methode sieht wie folgt für mich (funktioniert nicht mit dem Versuch arbeiten und unten fangen und es wäre nicht geräteunabhängig sein):

@Override 
public void render(float delta) { 
    game.batch.begin(); 
    game.batch.draw(backgroundgame, 0, 0, Gdx.graphics.getWidth(), 
      Gdx.graphics.getHeight()); 
    game.batch.draw(car.sprite, xcar, 
      (ycar)); 
    game.batch.end(); 
    /*try { 
     xcar++; 
     this.wait(50); 
     game.batch.end(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    }*/ 
} 

Im consructor der Klasse habe ich die x und y-Position des Sprites.

Ich habe mich gerade gefragt, wie ich das Sprite entlang der X-Achse Geräte-unabhängig bewegen kann? Kann ich es in der Render-Methode machen oder brauche ich einen neuen Thread für den Sprite?

Jede Hilfe wird sehr geschätzt!

+0

Willkommen bei stackoverflow. Bitte lesen Sie https://stackoverflow.com/help/how-to-ask und aktualisieren Sie Ihre Frage entsprechend. – Xoppa

Antwort

0

Jeder Frame, wenn Sie die Sprite entlang x-Achse verschieben möchten, tun:

sprite.setposition(lastx + 1*Gdx.graphics.getdeltatime(), some y) 
lastx = sprite.getX() 

Und nicht batch.draw() statt sprite.draw (Charge) verwenden. Batch.draw verwendet Sprite als dumme Textur ohne Position. Mit sprite.draw erledigt es die gesamte Positions- und Größenzeichnung für Sie.

Und Threading in Spielen ist eine schlechte Sache zu tun. Verwenden Sie niemals Threads, es sei denn, Sie müssen dies unbedingt tun. I. E. Laden etwas

Alles in Spielen ist jedes Bild (mit dem Haupt-Thread). Oder Sie erhalten Synchronisierungsprobleme mit anderen Threads und es wird ein Durcheinander.

Deshalb erhalten Sie fps drops und lags in Spielen, wenn Ihre Hardware sie nicht ausführen kann, weil die Zeit zur Verarbeitung aller Befehle pro Frame spürbar wird.

+0

Vielen Dank! –

+0

Könnten Sie meine Frage als richtiger Gruss markieren? Indem Sie auf das kleine Häkchen klicken, wird es grün. –

Verwandte Themen