SNAKE (EN OPENGL)

Bloutiouf Messages postés 2 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 18 avril 2005 - 18 avril 2005 à 18:07
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008 - 20 avril 2005 à 23:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30832-snake-en-opengl

cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 avril 2005 à 23:47
non, on commence par apprendre le triangel, tjs :)
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
20 avril 2005 à 23:42
c'est dans les #define, dans opengl.h
yen a un bon paquet... t'es pas obligé de tout lire (d'ailleurs C chiant a mourrir) mais ya quelques trucs dans cette longue liste qui sont intéressants
d'ailleurs ca m'étonne que tu sachs faire deds triangles et pas deds carres, en general on commence par apprendre a dessiner un cube...
enfin bon
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 avril 2005 à 23:15
ben ça gêne euh, c'est à dire qu'on peut pas le manger quoi :p

des références y en a partout, cherche GL_QUADS GL_TRIANGLES GL_LINE(S) etc... tu verras bien des tableaux.
feanor11 Messages postés 28 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 1 septembre 2005
20 avril 2005 à 22:53
A merci, je le cherchais PARTOUT ce GL_QUADS (vous connaissez un endroit ou sont référencés tous ces trucs ?)

Ca gêne si le point vert se trouve sur le serpent ?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
20 avril 2005 à 21:08
un .exe d'1Mo?? tu pourrais mettre ton projet en release
sinon
un bon point pour toi: pas de glut, 100% api win32
tu ne testes pas si le nouveau point que tu crées se trouve sur le serpent
pour dessiner: déja tu utilises des triangles alors qu'il y a GL_QUADS, mais en plus tu fais 2 fois glBegin(gl_triangles)
il y a un 's' a gl_triangles...
Sinon c'est bien, le fps est meme regulé
pas mal pour un 1er essai
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 avril 2005 à 17:00
je vais quand même expliciter un peu cela.

tu dois passer un 'seed' à ton générateur de nombres pseudo-aléatoires. en réalité, ce 'seed' détermine la suite quelque peu chaotique (d'où son intérêt pr le pseudo-aléatoire) de nombres que tu récupères un à un en appelant rand(). bien entendu, pour un même seed, tu as une même liste, et donc, tu dois trouver un moyen d'affecter un seed chaque fois différent à ton générateur à chaque exécution. tu as compris que lui passer un nombre aléatoire n'était pas une option :p donc, comme on n'a besoin que d'un nombre, on lui passe l'heure en cours, au moment du lancement du programme (en réalité, time() renvoie le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit, ce qu'on appelle communément l'heure Unix, et tu retrouveras cette date partout, quand on parle de timestamps)).

détail des prototypes:

time() prend un paramètre: un pointeur sur une structure time_t dans laquelle stocker le temps => t'en n'as pas besoin, tu mets donc 0 ou NULL (en C++, c'est équivalent).

srand() prend en paramètre un entier: le seed du générateur.

on fait donc communément ceci:

srand(time(NULL)); //initialise le générateur de nombres pseudo-aléatoires

Note: logiquement, tu n'appelles ceci qu'une seule fois, au démarrage du programme, plus JAMAIS après. n'essaye pas non plus de changer le seed avec un facteur, du style srand(time(0) * 5); -> ça n'améliore pas le "hasard".
cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 4
18 avril 2005 à 18:08
salut,
"Vous observerez que les lieux d'apparition des cibles vertes à avaler se font toujours aux mêmes endroits à chaque exécution (alors que le jeu les édite aléatoirement avec la fonction rand). Si quelqu'un à une explication, qu'il la donne !"

> fais un srand(time(0)) une seule fois avant que ton jeu ne se démarre. Les rands sont les memes qd la graine de ton generateur aléatoire est toujours la meme ou n'est pas mise (l'entier a l'interieur du srand).

a+ ;)
Bloutiouf Messages postés 2 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 18 avril 2005
18 avril 2005 à 18:07
Je crois qu'il faudrait initialiser le générateur de nombre aléatoires mais c'est tout ce que je peux te dire désolé... faudrait que je pense à ça aussi un de ces jours !
Rejoignez-nous