2010-08-17 4 views
2

Je veux créer une sorte de simulation. Il devrait afficher la position certaine d'un poisson/requin/orque (pas vrai, ils sont mis en place au hasard). Ma simulation peut afficher la situation de départ:Comment redessiner une vue? (OpenGl)

glOrtho(0, breite, 0, hoehe, 0, 1); 
glClearColor(0, 0, 1, 0); 
glClear(GL_COLOR_BUFFER_BIT); 

//Besetzen der Felder 
srand(time(0)); 
NSMutableArray* Wator = [NSMutableArray new]; 
for(int y = 0; y < hoehe; y++){ 
    for(int x = 0; x < breite; x++){ 
     NSInteger r = rand() % 100; 
     if (r < fishPer) { 
      [Wator addObject:[[[Fish alloc]init]autorelease]]; 
      drawAFish(x,y); 

     }else { 
      if (r < sharkPer + fishPer) { 
       [Wator addObject:[[[Shark alloc]init]autorelease]]; 
       drawAShark(x, y); 
      }else { 
       if (r < orcaPer + sharkPer + fishPer) { 
        [Wator addObject:[[[Orca alloc]init]autorelease]]; 
        drawAOrca(x, y); 
       } 
      } 
     } 
    } 
} 
glFlush(); 

Cela fonctionne très bien. drawAFish/drawAShark ... dessiner simple Quad:

static void drawAOrca (int x, int y) 
{ 
    glColor3f(1.0f, 1.0f, 0.0f); 
    glBegin(GL_QUADS); 
    { 
     glVertex3i(x, y, 0); 
     glVertex3i(x+1, y, 0); 
     glVertex3i(x+1, y+1, 0); 
     glVertex3i(x, y+1, 0); 
    } 
    glEnd(); 
} 

Ma question est la suivante: Comment puis-je redessiner la scène?

Il n'y a pas beaucoup d'informations utiles sur google ou dans la documentation.

Merci pour votre aide

Marcel

Répondre

2

l'écran juste au-dessus et d'en tirer tout nouveau. C'est la méthode standard.

+0

J'ai essayé ceci, mais lorsque l'application attend jusqu'à la fin du script. Mais je veux afficher les étapes intermédiaires. J'ai aussi essayé avec glFinish au lieu de glflush, mais le même problème s'est produit. – Marcel

+0

@Marcel Quel problème s'est posé? –

+0

que l'est affiché à la fin, mais il devrait y avoir un redessin entre les deux. Je reçois juste une sortie. Je l'ai testé avec une fonction de veille pour contrôler si elle fonctionne rapidement. – Marcel

Questions connexes