2009-03-04 5 views

Répondre

7

Si vous faites un jeu en 2D, vous pouvez configurer vos matrices de projection et vue du modèle afin que vous n'avez pas besoin de convertir tout:

// This goes in your init code somewhere 
// Set up 480x320 orthographic projection 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrthof(-240.0f, 240.0f, -160.0f, 160.0f, -1.0f, 1.0f); 

// Rotate into landscape mode 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glRotatef(-90.0f, 0.0f, 1.0f, 0.0f); 

Cela fait en sorte que les coordonnées du monde (-240, -160) correspond en haut à gauche de l'écran (en bas à gauche en mode paysage), (240, 160) en bas à droite (en haut à droite dans le paysage), etc. Depuis l'écran de l'iPhone est 480x320, vous n'aurez pas besoin de convertir entre les coordonnées du monde et de l'écran avec vos matrices mises en place ainsi.

Bien sûr, si vous voulez pouvoir déplacer l'appareil photo, vous devrez le décaler en fonction de l'emplacement de la caméra.

+0

Merci pour votre inscription. Je viens de remarquer que dans OpenGL ES pour l'iPhone il n'y a pas de méthode gluOrtho2D. Savez-vous ce que l'énoncé équivélant est? – Dimitris

+0

gluOrtho2D() est juste un wrapper autour de glOrtho(), donc je l'ai remplacé avec ça. –

Questions connexes