Question

J'ai un jeu Android où une bille se déplace basé sur l'accéléromètre. La balle se déplace à une vitesse variable. Le jeu a des niveaux beaucoup plus qu'un écran de smartphone, et donc je traduis la toile que la balle se rapproche du bord de l'écran pour accueillir les grands niveaux. Les travaux de défilement, le problème est le défilement en douceur basé sur la balle.

Voici une tentative que les changements basés sur le changement de position de la balle entre les mises à jour:


// RIGHT SHIFT
shiftFactor = Math.abs(xCoor - prevXCoor);
if (ball.x + translateX &gt rightX * 0.8
 && rightX &lt levelWidth + padding) {
    translateX -= shiftFactor;
    leftX += shiftFactor;
    rightX += shiftFactor;
} 
Il semble nerveux.

Voici une tentative que les changements basés sur une constante.


int shiftFactor=2;

//SHIFT SCREEN RIGHT
if (ball.x + translateX > RightPerimeter * 0.8 && rightPerimeter < levelWidth) {
  translateX -= shiftFactor;
  viewPortLeft += shiftFactor;
  viewPortRight += shiftFactor;
}

Pour les valeurs de shiftFactor inférieures, sans à-coup défile, mais la balle peut facilement « Outrun » le défilement. Pour shiftFactors plus grandes, le défilement devient progressivement choppier.

Toutes les suggestions? Merci.

Était-ce utile?

La solution

Votre problème est que votre fréquence d'image est trop faible. Dans mon expérience toile est pas bien équipé pour faire des jeux en temps réel à un bon taux de trame. Vous verrez un grand gain de performance si vous passez à rendre avec OpenGL.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top