Domanda

Ho uno sprite caricato come trama e ho bisogno di animarlo, permettendogli di "affrontare". sinistra o destra - essenzialmente a volte ho bisogno di "capovolgere" esso. So che OpenGL ha un gltranslate che riposiziona un oggetto e glrotate che lo ruota. Esiste un metodo che lo fa semplicemente scorrere su un asse? In caso contrario, come realizzeresti questo?

È stato utile?

Soluzione

Non ho fatto casini con gli sprite di punti, ma credo che siano trame. Le trame hanno matrici di trama, il che significa che puoi usare glTranslatef () , glScalef () e glRotatef () su di esse.

Proverei qualcosa sulla falsariga di glScalef (-1,1,1); che capovolgerebbe le coordinate della trama sull'asse X.

Come ho detto, non ho giocato con gli sprite dei punti, ma non ho nemmeno scherzato con le matrici di trama. Sembrano piuttosto utili, tuttavia.

Aggiornamento: nel frattempo ho giocato con le matrici delle trame. Allo stesso modo in cui si passa tra le matrici modelview e matrici di proiezione, è possibile passare alla matrice texture; circa: glMatrixMode (GL_TEXTURE); dopo di che è possibile eseguire le operazioni di cui sopra.

Potresti anche solo dipingere un quadruplo / due triangoli e finirlo :)

Altri suggerimenti

Non puoi farlo con i punti sprite di OpenGL; anche se puoi spostare il centro dello sprite, la sua forma è sempre orientata allo stesso modo.

Quello che puoi è disegnare i tuoi sprite come quad, che ti permette di capovolgerli, ruotarli e rovinarli come preferisci. Esistono tutorial sul disegno manuale di sprite (ovvero cartelloni pubblicitari) su NeHe

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