2017-09-30 6 views
0

J'ai un Sprite que je dessine dans la méthode de rendu, je place également la position (x et y) sur l'écran là pendant le dessin.Comment faire pour déplacer un sprite indépendant de l'appareil le long de l'axe des x (libgdx)

La méthode render ressemble à ceci pour moi (ne fonctionne pas avec l'essai et les prises ci-dessous et il ne serait pas dispositif indépendant):

@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(); 
    }*/ 
} 

Dans le consructor de la classe I mis en x et y-position de l'image-objet.

Je me demandais simplement comment je pouvais déplacer l'image-objet le long de l'axe x indépendamment de l'appareil? Puis-je le faire dans la méthode de rendu ou ai-je besoin d'un nouveau thread pour le Sprite?

Toute aide est très appréciée!

+0

Bienvenue sur stackoverflow. Veuillez lire attentivement https://stackoverflow.com/help/how-to-ask et mettre à jour votre question en conséquence. – Xoppa

Répondre

0

Chaque image, si vous voulez déplacer le sprite long de l'axe x, faire:

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

Et ne le font pas batch.draw() au lieu d'utiliser sprite.draw (batch). Batch.draw utilise sprite comme une texture bête sans position. Avec sprite.draw, toutes les positions et tailles sont dessinées pour vous.

Et enfiler dans les jeux est une mauvaise chose à faire. N'utilisez jamais de fils sauf si vous en avez absolument besoin. I. E. Chargement de quelque chose

Tout dans les jeux est fait chaque trame (en utilisant le thread principal). Ou bien vous obtenez des problèmes de synchronisation avec d'autres threads et cela devient un gâchis.

Et c'est la raison pour laquelle vous avez des fps drop and lag dans les jeux si votre matériel ne peut pas les exécuter, car le temps de traitement de toutes les commandes par image devient visible.

+0

Merci beaucoup! –

+0

Pourriez-vous marquer ma question comme une réponse correcte? En cliquant sur la petite coche, il devient vert. –