Voici le code de mon futur petit jeu, où le héros doit éviter des cubes apparaissant de manière aléatoire... Je compte rajouter des bonus à prendre pour augmenter le score, etc... (j'attends de savoir gérer les collisions autrement qu'à grand coups de if , else if...
Le problème c'est que les 15 petits cubes changent à chaque fois que la boucle while recommence, c'était ce que je voulais mais ca va beaucoup trop vite...(Ca ressemble à la pub de Canal + autrefois )
Et si je mets un SDL_Delay je ne sais plus bouger le héros et j'ai droit à une magnifique boucle infinie si je le mets à la fin du while, ou à un truc qui sert à rien si je le mets à la fin du for...
Tout ce que je voudrais c'est que la boucle continue tant que le bool est bien égal à un mais avec un rafraichissement de la position des cubes toutes les x secondes... Et que je sache bouger pendant ce temps là évidemment !
Tu dois initialiser la SDL avec le flag SDL_INIT_TIMER en plus.
Ensuite, à tout instant tu peux appeler SDL_GetTicks (ou qqc du genre) qui te donne le nombre de ms écoulées depuis le lancement du programme.
Avec ça si tu réfléchis un peu tu dois pouvoir t'en sortir
Ok, et en passant les surfaces étant rectangulaires, c'est un solution potable de gérer les collisions avec un tableau à deux dimensions et un armada de boucles for ? Ou alors je suis à côté de la plaque...
Je pense à
for(i=0;i<largeur;i++) { for(j=0;j<hauteur;j++) { if etc.... } }
Y'a de l'idée, à toi de faire des tests, de voir si c'est assez rapide etc
Je n'ai moi-même pas commencé par faire un truc parfait, personne ne peut t'en demander autant. Par contre j'ai essayé de me débrouiller seul pour voir ce que j'étais capable de faire !
Euh je viens de faire un test et quand je le sors de la boucle, la seule différence c'est que ca va plus vite et que ca "clignote" plus... Par contre faudrait vraiment avoir de sacrés réflexes pour éviter tous les carrés maintenant
EDIT : Miracle , quand je bouge le héros ca ne rame plus maintenant, un bon point ca
Pour l'instant j'ai fait du 1/2 , j'ai résolu le problème de temps, les carrés changent de position toutes les 2 secondes... Toute de fois il me manque un élément très important pour pouvoir commencer à pauffiner les détails
Les collisions
J'ai essayé quelques fois mais je me perds dans mes boucles de for et j'ai droit à pleins d'erreurs avec des variables non initialisées alors qu'elles le sont ..
1) un tout petit petit petit indice sur les collisions serait le bienvenu
2) à chaque boucle for où il est utilsé, je dois réinitialiser inlassablement mon SDL_Rect positionEnnemis[15] depuis que je l'ai transformé en tableau... Pourquoi ?
gestion du temps
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
If you'd like to join us, read "How do we work at OpenClassrooms"! :)