2010-06-16 3 views
1

J'ai essayé de comprendre comment faire un jeu de style jouet en poudre sur l'iPhone. Mon problème est de savoir comment dessiner des pixels à l'écran. D'après ce que j'ai lu, OpenGL est meilleur pour les jeux car il est plus rapide/accélération matérielle, mais il n'y a pas de méthode pour dessiner des pixels directement sur l'écran. Apparemment, dessiner des pixels dans un tampon de trame hors écran est la solution, mais comment puis-je passer cela à OpenGL? Est-ce que j'utilise une texture?Dessiner des pixels individuels avec iphone sdk

(ceci suppose que je n'ai aucune connaissance préalable de la programmation graphique de l'iPhone).

Merci!

Répondre

3

Habituellement, dans OpenGL, vous dessinez des primitives et des polygones. Si vous devez dessiner un bitmap, vous devez appliquer une texture pour votre polygone.

Découvrez le moteur cocos2d-iphone pour les jeux 2D basés sur OpenGL.

Si vous avez encore besoin de dessiner un pixel, voici une méthode de cocos2d pour tracer une ligne:

void ccDrawLine(CGPoint origin, CGPoint destination) 
{ 
    CGPoint vertices[2]; 

    vertices[0] = origin; 
    vertices[1] = destination; 

    // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY 
    // Needed states: GL_VERTEX_ARRAY, 
    // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY 
    glDisable(GL_TEXTURE_2D); 
    glDisableClientState(GL_TEXTURE_COORD_ARRAY); 
    glDisableClientState(GL_COLOR_ARRAY); 

    glVertexPointer(2, GL_FLOAT, 0, vertices); 
    glDrawArrays(GL_LINES, 0, 2); 

    // restore default state 
    glEnableClientState(GL_COLOR_ARRAY); 
    glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
    glEnable(GL_TEXTURE_2D);  
} 
Questions connexes