Étape 9: Le Build : rotation du cube
Remarque : j’ai mis à jour mon windows 10 PC avant d’écrire l’étape, c’est pourquoi la barre du haut de mon application est verte à cause de ma couleur de thème (ce qui est vert). Il n’y a aucune modification supplémentaire que j’ai fait, c’est juste le windows OS faire sa chose.
Pour faire pivoter notre cube, nous aurons besoin de deux choses.
1) tout d’abord une fonction pour mettre à jour la rotation lorsque nous appuyer sur nos clés.
2) matrices pour tourner notre cube.
La fonction suivante est responsable de vérifier les événements de touche et mise à jour de la rotation et l’échelle des variables
Tout d’abord, j’ai défini une variable
const Uint8 * touches = NULL ;
Il est semblable au concept d’un tableau, mais fondamentalement, c’est une structure de données pour stocker des données en une chaîne d’éléments.
Ensuite, comme dans (1) j’ai remplir variable clé avec les évènements importants qui se produisent dans chaque itération via SDL_GetKeyBoardState(NULL) ;
Voir, super facile. Maintenant, en (2) , j’ai appeler la fonction checkKeys(),
Contrôle qui touche est pressée est super facile à SDL, il a intégré des macros définir quelle touche est enfoncée.
Comme dans SDL_SCANCODE_ESCAPE (1) définit la touche Échap
Source : www.ComputerHope.com
Source de l’image :
De la même façon (2) et (3).
Maintenant dans (2) j’ai défini toutes les variables (qui sont float btw) pour définir la rotation. Quand les touches sont pressées, elles sont incrémentées/décrémenté en conséquence.
GLfloat cubeRotateX = 0.0f ;
GLfloat cubeRotateY = 0.0f ;
( 3), j’ai défini les variables responsables de la mise à l’échelle.
GLfloat ScaleFactor = 1.0f ;
Maintenant la fonction checkKeys() retourne true si la condition de sortie est réussie et false si condition de sortie n’est pas vraie encore.
Puis en conséquence dans le si condition dans le tout en boucle, la variable fait est modifiée. Comme vous le savez probablement maintenant, fait variable contrôle l’état de la sortie de l’app si done = 1; while boucle se ferme et l’application se termine.