Domanda

Ho un gioco per Android in cui una palla si muove in base al accelerometro. La palla si muove a velocità variabile. Il gioco ha livelli molto più grandi di uno schermo dello smartphone, e così ho tradurre la tela come la palla si avvicina al bordo dello schermo per accogliere i grandi livelli. Le opere di scorrimento, il guaio è senza intoppi scrolling basa sulla palla.

Ecco un tentativo che si sposta in base alla variazione della posizione della palla tra gli aggiornamenti:


// 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;
} 
Sembra nervosa.

Ecco un tentativo che sposta basano su una costante.


int shiftFactor=2;

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

Per valori inferiori shiftFactor, uniformemente rotoli, ma il pallone può facilmente 'Outrun' lo scorrimento. Per shiftFactors più grandi, lo scorrimento diventa incrementalmente choppier.

Qualche suggerimento? Grazie.

È stato utile?

Soluzione

Il problema è che il frame rate è troppo basso. Nella mia esperienza tela non è ben attrezzato per fare i giochi in tempo reale ad un buon frame rate. Vedrete un grande guadagno di prestazioni se si passa a rendere con OpenGL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top