Bloutiouf
Messages postés2Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention18 avril 2005
-
18 avril 2005 à 18:07
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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.
cs_Kirua
Messages postés3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 décembre 2008 20 avril 2005 à 23:47
non, on commence par apprendre le triangel, tjs :)
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és28Date d'inscriptionmercredi 6 octobre 2004StatutMembreDerniè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és1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 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és3006Date d'inscriptiondimanche 14 avril 2002StatutMembreDernière intervention31 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és700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 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és2Date d'inscriptionsamedi 25 janvier 2003StatutMembreDernière intervention18 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 !
20 avril 2005 à 23:47
20 avril 2005 à 23:42
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
20 avril 2005 à 23:15
des références y en a partout, cherche GL_QUADS GL_TRIANGLES GL_LINE(S) etc... tu verras bien des tableaux.
20 avril 2005 à 22:53
Ca gêne si le point vert se trouve sur le serpent ?
20 avril 2005 à 21:08
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
19 avril 2005 à 17:00
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".
18 avril 2005 à 18:08
"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+ ;)
18 avril 2005 à 18:07