Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SNAKE 3D OPENGL DEV C++


Information sur la source

Catégorie :OpenGL Niveau : Débutant Date de création : 14/07/2003 Date de mise à jour : 06/09/2004 19:24:19 Vu / téléchargé: 12 962 / 1 616

Note :
9,75 / 10 - par 12 personnes
9,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (65)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
C'est la mode des jeux de serpent on dirait...
pourtant le mien a qq plus je crois: il est en 3D (y en a déjà un), mais donne pas mal niveau graphismes, on peut déplacer la caméra sur une boule imaginaire, le jeu propose un menu, de l'aide, des écrans de fin: ce que bcp de dvpeurs n'ont pas fait, pourtant sans ça un jeu n'est pas un jeu n'est-ce pas ? ^^

sur le screenshot vous pouvez voir le design rouge, mais en mettant comme texture nommée sol.bmp par exemple la texture de verre on obtient un joli bleu (testez!) ou encore un désert, une sorte de mauve spécial: en fait comme j'étire la texture de 64*64 sur une grande surface, les couleurs donnent une impression de relief et c'est joli ^^

je n'ai pas mis de musique, quoique j'aie déjà utilisé fmod.

question textures, j'utilise (Ô idiot!) glaux.dll (que vous devrez d'ailleurs mettre dans windows\system32 ou encore ds le dossier du projet. le fichier glaux.h est dans le zip ainsi que glaux.dll. vous devrez peut-être mettre le .h dans le dossier include de votre compilo). Malheureusement, cette sale bête refuse les textures au delà de 64*64 pixels, ou bien je m'y suis mal pris. résultat: les images du menu d'accueil ou des panneaux de fin sont étirées... bcp trop ! j'utiliserais bien une autre routine (pas glaux) pr les charger qui me permette d'utiliser des autres textures (si possible pas carrées mais j'en doute) et par pitié: au moins 256*256, sgnif

les améliorations à apporter: un panneau d'options! pvr changer la vitesse du serpent (et en conséquence les points accordés), un panneau des meilleurs scores, pvr changer In-Game l'aspect du jeu (thème rouge, bleu, mauve, sable ...). ttes des choses loin d'être très dures mais que je ferai... une autre fois (ça s'annonce long)

c'est mon tout premier jeu, toutes catégories confondues, et j'ai bataillé ferme avec mon compilo. mais je m'en suis sorti après avoir réussi à tourner tout mon code vers une solution des plus OO qui soit. C++ blows my life ! ;-) et merci à Funto, tout particulièrement.

quoi d'autre à dire... le tout est très commenté (pr mon confort personnel), si vous le compilez en mode Console (dans les options du projet sous Dev C++), vous verrez la console en fond qui ma permis de débugger pas mal de choses, faut s'habituer (ça défile pas mal :-P) mais c'est une aide précieuse que je conseille à tous (plus pratique que de créer une alerte MessageBox() (limitée aux char* en plus!).

la classe principale est la classe Jeu. elle possède en propriété des occurrences des classes serpent, pomme, camera ... et comme méthodes toutes les fonctions de textures, de gestion clavier etc. le jeu intègre un timer (c'est d'ailleurs dans le fichier jeu.h que vous pouvez changer DELAI pr modifier la vitesse du serpent).

le jeu repose essentiellement sur la classe Cube, qui ... dessine les cubes. le serpent est constitué d'un tableau de cubes, la pomme d'un cube (oui désolé :-P), et les positions des cubes sont gérées par la classe Point dont chaque cube intègre une occurrence. l'opérateur == (ainsi que !=) ont été surchargés pr la classe Point pr pvr vérifier si les coord. de la tête du serpent correspond avec les coord. de la pomme par exemple.

A propos, vous verrez dans cette fonction que j'ai mis des floor(). j'avais un bug quand on avait perdu une partie et qu'on en recommançait directement une seconde, les coordonnées etaient très légèrement décalées (même pas un 10E-15 ème d'unité !!). je ne comprends pas pq, mais forcément ça me bousillait mon opération d'égalité. voilà pq. c'est gênant point de vue ressources... [note du 6/9/04: en fait, les float et les double ne permettent pas de garantir une précision sur tout leur domaine, ce qui engendre des arrondis et donc l'impossibilité d'utiliser les opérations d'égalité sans 'epsilon' (tolérance)]

Ce jeu n'est absolument pas portable... non seulement j'ai utilisé une fenêtre Win32, mais en plus j'ai utilise GetTickCount() pr le timer et même j'utilise des fonts générées par windows. j'en suis désolé, c'est un peu la voie de la facilité étant donné que j'avais pr la fenêtre et les fonts des tutoriaux (nehe).

autre chose, quand on mange une pomme, j'établis la liste des positions potentielles où je pourrais mettre la nouvelle pomme. pour ça je crée un tableau pur. une boucle passe les 16*16 cases possibles et vérifie chaque fois si la case n'est pas déjà oqp par le serpent. MAIS avec un serpent de 125 cases de long, ça revient à 96 000 opérations d'égalité (3 par comparaison de coord), c'est bcp trop !! il faudrait utiliser une liste chainée pour ajouter toutes les cases puis effacer celles du serpent (et encore, faudrait trouver un moyen intelligent parce que même comme ça ça risque de bouffer pas mal)

j'ai fait une longue dissert', j'en suis désolé. vous êtes au courant du projet maintenant ;-) je pense pr l'instant que c'en est un sans lendemain, c'est mon premier, il sert surtout de test finalement. laissez moi vos impressions et surtout des conseils d'amélioration [06/09/04: j'avais écrit improvation O_o]. (j'ai déjà pas mal d'idées pr rendre le gameplay plus excitant (des caisses qui tombent du ciel et d'autres choses), mais je ne les ai pas implémentées pr l'instant [et ça ne viendra jamais].

ah oui, j'y ai mis un mode nocturne, en fait ça désactive la lumière c tt ;-) utilisez la touche 'n'
 

Source

  • il est dans le zip, exe compris.
  • notez qu'avec un autre pc je l'avais compilé (exactement le même CS) et j'ai obtenu un exe de 35Ko (même compilo, fraichement installé), alors que sur ma machine j'en ai un de 145Ko. comprends pas. (et avant c t de 450 !!)
il est dans le zip, exe compris.
notez qu'avec un autre pc je l'avais compilé (exactement le même CS) et j'ai obtenu un exe de 35Ko (même compilo, fraichement installé), alors que sur ma machine j'en ai un de 145Ko. comprends pas. (et avant c t de 450 !!) 

Conclusion

pour changer le design du jeu, renommez les fichiers bmp nommés sol LETTRE.bmp en sol.bmp. essayez avec n'importe quelle image de 64*64, ça donne de belles choses parfois ^^
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

06 septembre 2004 19:24:19 :
Correction de PLEIN de fautes d'ortho (et il doit en rester) dans la description; passage du niveau initié à débutant;

Commentaires et avis

signaler à un administrateur
Commentaire de Wett le 14/07/2003 00:29:16

Hey franchement il est super!!! Un poil trop rapide pour moi qui n'aie que des reflexes d'un vieux croulant de 150ans, mais génial ;) Je te met 10/10!

signaler à un administrateur
Commentaire de Kirua le 14/07/2003 00:34:22

merci wett ;-) agréable commentaire. tu peux essayer de le recompiler avec un DELAI plus élevé (voir jeu.h en haut du fichier les #define). je devrais faire un menu d'options quand même. là un #define c vrmnt l'anti-facilité. puis aussi pr la résolution d'écran, moi j'aime autant être en mode fenêtré 1024*768, mais pr ici je l'ai mis en 800*600 (tlm n'a pas un écran 1280*1024 ;-)). faudrait aussi pvr le configurer en jeu. j'y penserai

signaler à un administrateur
Commentaire de Funto66 le 14/07/2003 13:35:17

Très bon jeu. Ce qui est surtout bien fait, c'est qu'il soit orienté objet, et ça, c'est rare sur CppFrance !
Pour le débugage, tu pourrais mettre un #define DEBUGUER et placer les printf() entre #ifdef DEBUGUER et #endif // DEBUGUER, comme ça lorsque tu compiles ton prog en version finale, tu n'as qu'à commenter #define DEBUGUER et plus de printf() dans ton code. Enfin, ce n'est qu'une idée...
Pour ton système de placement de pommes, moi sur mon snake (eh oui, comme tu dis c'est la mode sur CppFrance :) ), j'ai utilisé un algorithme plus bourrin : je donne à X une position au hasard comprise entre 0 et un nombre et à Y une position au hasard comprise entre 0 et un autre nombre, et après je teste si la place est déjà occupée par une des parties du serpent : si c le cas, je recommence, sinon, je la garde... Je sais pas quelle est la meilleure méthode.
Pour ce qui est de l'idée des caisses, ça a l'air pas mal, mais comme les pommes, il faut pas que ça tombe sur le serpent.
Une autre idée serait de remplacer la pomme par une souris qui bouge... :)
Enfin, j'ai juste mis un petit 10/10..... :)

signaler à un administrateur
Commentaire de Wett le 14/07/2003 14:40:27

Lol le coup de l'aglorithme bourrin de hasard c'est aussi comme ca que j'aurai fait moi ;) mais c vrai que a partir d'un certain nombre de cases, il devient aussi tres lent.... la solution serai p-t de tenir une liste chainée ou tu tiens les positions du serpent, à chaque fois qu'il bouge, tu supprime le dernier maillon et tu en rajoute un, ainsi tu connais en permanence la position de ton serpent... Ou l'inverse, tu tiens toutes les positions libres dans une liste chainée puis tu enleve celle ou le serpent passe puis tu rajoute celle qu'il quitte (operation tres simple il me semble et rapide...) ! Apres juste 1 seul random pour trouver une case ou poser la pomme... Enfin si tu vois ce que je veux dire ;) En tout cas encore bravo :D

signaler à un administrateur
Commentaire de AmK le 14/07/2003 15:03:26

bravo kirua ,j'avais deja joué a ton snake , mais il etait encore en phase de devellopement , en tout cas c'est le seul snake 3d du site et qui marche bien ;)

signaler à un administrateur
Commentaire de Kirua le 14/07/2003 15:28:08

pr le mode debug, la version finale je la compile sans fenêtre dos, donc pas de problème de ce côté là ;-)

funto avec ta méthodes, quand le serpent mesure 255 cases sur 256 cases de terrain, i lfaut potentiellement 256 * 96 000 opératiosn d'égalité pr trouver la place ...


merci pr les commentaires les gars, c sympa ^^ l'orienté objet c pas pr vous faire plaisir, c pr mon confort ;-)

signaler à un administrateur
Commentaire de Funto66 le 14/07/2003 18:30:01

AmK >> Presque le seul snake 3D du site... L'autre tu le trouveras dans les + populaires du mois.
Wett >> Je comprends pas trop comment tu peux n'utiliser qu'un seul random : tu peux pas faire un rand() qui évite certains nombres, non ??
Kirua >> Ce que je disais, c'était juste pour une optimisation : je pense que l'appel de printf(), même s'il n'affiche rien parce qu'il n'y a pas de console, bouffe de la mémoire, non ?
Sinon, c'est vrai que la méthode "bourrin" est pas géniale non plus quand il y a beaucoup de cases occupées...
Je vois pas trop quelle serait la meilleure méthode (s'il y en a une :) )

signaler à un administrateur
Commentaire de Wett le 14/07/2003 19:37:31

Non c'est moi qui me suis mal exprimé. En effet tu peux pas faire un rand qui evite certaines valeur. Ce que je proposais c'etait de tenir un inventaire des cases libres dans une liste chainée (simple à faire, il suffit de prendre toutes les cases au debut du jeu, d'enlever celles ou sont le serpent. Puis, au fur et à mesure que le serpent avance vers une nouvelle case, on enleve la nouvelle et on rajoute celle qu'il vient de quitter. Non?), et ensuite tu fais un rnd() pour trouver l'index de la case dans la liste chainée contenant les cases libres. Je sais pas si vous avez mieux compris lol à ce stade le code parle mieux de lui-meme

signaler à un administrateur
Commentaire de Funto66 le 14/07/2003 20:09:35

G compris :)
Ce qui manquait, c'était "l'index de la case dans la liste chainée".
Après, il reste à s'occuper de quand le serpent grandit....
Faut aussi donner des numéros à chaque case pour pouvoir reconnaître quelle est la nouvelle case du serpent et savoir laquelle il faut enlever de la liste chaînée donc...

signaler à un administrateur
Commentaire de Wett le 14/07/2003 20:46:59

Oui c sur mais bon en gros je pense que l'algo reste simple et efficace ;) Et qd le serpent grandit c'est qu'en general on ajoute une case à la tete sans supprimer la derniere case de queue, donc idem ca reste assez simple...

signaler à un administrateur
Commentaire de Kirua le 15/07/2003 01:04:23

oui wett, excellente idée! merci, je vias y penser, parce que les listes chaînées, ce sera une premire pour moi (ton code m'a pas trop servi ;-))

oui ça simplifierait, la liste chainée contient des occurences de Point. l'algo passerait simplement ts les points existants ds la liste en revue et enlèverait et ajouterait ce qu'il faut à chaque déplacement de serpent, c très économique.

signaler à un administrateur
Commentaire de Wett le 15/07/2003 01:16:58

Lol mais de rien ;) sinon mon code meme s'il ne te sert pas regarde le qd meme, il pourra p-t t'eviter des bugs à la noix dans ton propre code ;)

signaler à un administrateur
Commentaire de Ricpperso le 16/07/2003 17:36:27

10/10 c'est pas assez, nan masi ton prog la il est génnnnnnnnniiiiiiiiiiaaaaaaaaaallllllllll bravo continu comme ca

signaler à un administrateur
Commentaire de Kirua le 16/07/2003 22:15:24

wow ric, merci ^^ ça fait un long mot tout à coup ^^
mouarf, depuis que je l'ai posté, j'ai plus touché au code, je me suis remis à mon bon vieux PHP, retour aux sources ^^

signaler à un administrateur
Commentaire de Ricpperso le 17/07/2003 01:02:21

de rien :p

signaler à un administrateur
Commentaire de trinitacs le 17/07/2003 19:22:48

Pour la taille de ton exe rajoute l'option -s lors de la compilation. Tu verras ça va réuidre de moitié  peu près.

Ensuite il y a moyen de largement optimisé ton code quand tu envoies les vertex car ça fait un brin bourrin les glVertex. Mais tout les codes sur cppfrance utilise seulement glVertex, je vais peut-être faire un tuto là dessus.

Arf ton prog n'est pas portable g été obligé de rebooter. En plus même sous win les touches fonctionne bizarrement chez moi: je ne peux pas déclacer le serpent.

serpent.h ligne: 36
Heu c'est mieux avec une liste chaînée quand même :)

Ce serait cool de pouvoir modifier la taille du jeu.

Et je ne vais m'étendre sur le mélange du C et C++ (define, printf...), hein funto66 ;)

signaler à un administrateur
Commentaire de Dean le 17/07/2003 21:17:10

Je n'ai pas pu apprécier le code car je ne m'y connais rien en C++, mais en tout cas le jeu déchire ! Je te tire mon chapeau ;-).

signaler à un administrateur
Commentaire de Kirua le 18/07/2003 02:09:07

merci dean

trinitacs je te remercie pr ce message, j'y réponds:

-ok, en effet, je viens de tester et j'obtiens 85Ko! c'est une astuce en or, je te remercie ! quelles sont les contreparties de cette option? seulement lenteur de compilation?

-oui j'ai vaguement lu sur gamedev.net qu'on pouvait faire ça autrement mais je n'ai pas lu avec bcp d'insistance et j'ai pas trop compris, je t'encourage donc à faire un tuto, autant que possible j'aimerais éviter qu'un bête jeu de serpent exige un Pentium 6, 5 Ghz O_o

-pas portable en effet, j'avais prévenu ;-) pour tes touches, je suis désolé je ne vois pas, j'ai testé mon jeu sous Win XP et Win NT 2000 et je n'ai eu aucun problème à ce niveau. pr ce qui est de la portabilité, j'ai testé de longues heures les avantages / désavantage de trois types de fenêtres OpenGL: la fenêtre type NeHe Win32 (par définition non portable), la fenêtre type proposée ds u ntuto de opengl.org ou .com sais plus, compatible linux, mais qui ne proposait pas de vrai mode pleine écran et ne permettait pas une gestion clavier très poussée (avec la fenêtre Win32 je capte moi-même les messages WM_KEYDOWN et WM_KEYUP) ensuite, une troisième avec Borland C++ Builder, de tte évidence le plus simple, mais aussi le moins documenté et le moins distribuable (pleisn de DLL borland à fournir, puis c pas tlm qui a une version chez lui). en définitive j'ai choisi comme tu peux le voir la fenêtre NeHe adapté à la sauce POO, et tant pis pr les courageux qui utilisent Linux (j'ai installé mandrake 9.1 mais ça n'a pas été une réussite, ma carte réseau sans fil IEEE n'était pas reconnue, je me suis renseigné longuement, sur les sites officiels, sur les newsgroup, sur les sites spécialisés etc, en gros il faut que je crée une nvlle distribution linux presque ^^^

-oui je l'ai remarqué tt de suite en codant, je susi nul à ce jeu donc je risque pas de subir des ralentissements mais pr les plus performants, ça risque en effet. j'y pense gentillement mais rien ne me presse moins que ça ^^ pr sur, l'idée de Wett est la plus économe, si je saute le pas ce sera comme il l'a décrit.

la taille du jeu tu veux dire de l'arène? c possible, suffit de recompiler en modifiant les #define ds le main.h LARGEUR et LONGUEUR. deux règles à respecter: le produit doit être <= à 256, les deux dimensions doivent être paires. c tt, ça marche impec j'ai testé en 4*4, 6*8 etc.

-printf() c uniquement pr le débuggage, ça c révélé pratique, j'aurais pu utiliser un cout avec la bib. iostream mais comme j'incluais déjà la bib. pour printf(), j'ai préféré cette solution. pour les #define, je ne savais pas que c t du C, il faut utiliser const type alors, obligé? j'ai jamais fait de C, alors je vois pas trop la frontière.

bien à toi

Kirua

signaler à un administrateur
Commentaire de Funto66 le 18/07/2003 12:46:41

Pour l'histoire du mélange C/C++, trinitacs et moi avions eu une longue conversation pour/contre ;) Donc ce n'est que mon avis, et trinitacs ne sera pas certainement pas d'accord, mais je pense qu'utiliser des printf et des #define ne nuit pas à la POO, et je pense qu'il est mieux d'utiliser des #define plutôt que des const type parce que des const sont des variables et prennent donc de la place mémoire alors qu'avec les #define le préprocesseur remplace dans le code par la valeur.
Pour la taille de l'arène, à mon avis, il veut dire que ça serait sympa de pouvoir modifier la taille de l'arène pendant le jeu, sans recompiler.
Pour l'algo de Wett, pour l'instant c'est le meilleur qu'on ait :)

signaler à un administrateur
Commentaire de Kirua le 18/07/2003 12:48:51

yeah, la théorie du moins (pr son algo)
pr les #define, je les préfère parce que ça fait une ligne verte très visible en haut du fichier :-D (suicide en publique de mon crédit de programmeur ^^)

signaler à un administrateur
Commentaire de Funto66 le 18/07/2003 13:32:41

Ben chez moi c'est une ligne bleue :)

signaler à un administrateur
Commentaire de Kirua le 18/07/2003 13:41:34

je suppose que tu es adeptes de VC++. perso je préfère DevC++, parce qu'il incarne bien l'esprit du C++ (libre, gratuit). Enfin, j'ai bien essayé VC++, et je ne comprends pas ce que vous y trouvez de plus qu'à DevC++, c vrai au fond, qu'est-ce qu'il a de plus qui justifie cette dépense ?

signaler à un administrateur
Commentaire de Wett le 18/07/2003 13:49:18

Hum... Personellement si j'utilise VC++ c'est plus par habitude... J'ai essayé Dev c++, et vraiment c'est trop bizarre : rien qu'un detail mais qui pour moi a son importance : la mise en forme auto du code lol ça ça m'horripile sous Dev ^^ Sinon apres c'est vraiment par pure habitude, je cherche plus des heures ou se trouve tel commande du compilo, enfin tout ça quoi... Je sais que ca t'aide pas à repondre mais bon :) j'ai tjs utilisé VC++, et je n'ai aucune envie d'en changer :)

signaler à un administrateur
Commentaire de Funto66 le 18/07/2003 14:27:36

Moi j'ai 2 bonnes raisons d'utiliser Visual C++ :
-Primo Dev-C++ ne marche pas chez moi (clock skew detected à chaque compilation, ç m'indique pas où sont les erreurs..... J'ai cherché partout et j'ai abandonné. Si jamais vous savez ce que c'est...
-Deuzio : Avec Visual C++, j'ai Visual Assist 4.1, de tomato software, et ça c'est le pied : http://www.wholetomato.com/
Tu tapes le début d'une variable, tu fais TAB et ça finit d'écrire, tu tapes un prototype de fonction et lors de la définition, tu fais TAB après la parenthèse et tout s'écrit automatiquement, tu tapes if+TAB et t'as
if()
{
}
avec le curseur placé entre les parenthèses, toutes les macros, les enum, les constantes en #define sont en rose, les variables en gris, les fonctions en rouge, les classes en bleu, tu cliques sur une variable et tu cliques sur goto et tu vas à la déclaration de la variable ou de la fonction...... Bref, c'est GENIAL !

signaler à un administrateur
Commentaire de Kirua le 18/07/2003 14:46:58

ah oui je comprends, la première raison suffit déjà amplement d'ailleurs funto ;-) vi c vrai qu'y a pas de macros pr DevC++, ou en tt cas j'en ai pas vues. Mais donc, c pas VC++ en soi qui est mieux, c comme tjs une question d'école (on finit tous par tomber ds un programme et après c dur de changer) et parce que VC++ est extensible grâces aux macros.
DevC++ est en constante évolution, ils vont peut-être créer un système de macros u nde ces jours :-)))

signaler à un administrateur
Commentaire de Wett le 18/07/2003 15:21:34

C'est vrai que VC simplifie souvent la vie, on peut aller directement à une definition de variable, chercher n'importe quoi de definit il te le retrouve tout seul... Et en plus je connaissais pas ca funto, je crois que je vais l'installer ;) merci du tuyau ;)

signaler à un administrateur
Commentaire de Funto66 le 18/07/2003 21:07:40

De rien :)
Tu verras, qd tu l'auras installé, t'auras plus jamais envie de passer à autre chose que Visual C++ :)
D'ailleurs, c'est dommage que ça n'existe pas ailleurs.

signaler à un administrateur
Commentaire de Kirua le 18/07/2003 22:02:23

dis, passer directement à uen déclaration de variable ç y est ds DevC++, en meme temps que l'arborsescence des fonctions (avec définitions de méthodes, paramètres etc) des sauts direct source / en-tête; vers la déclaration; vers le code de la fonction etc... nonon pas de problème le programme suit :-)

signaler à un administrateur
Commentaire de Funto66 le 19/07/2003 00:15:16

Ah !
Et sinon, si tu tapes "#~include <GL/glut.h>", est-ce que si tu tapes "gl" et que tu fais TAB, ça t'affiche une liste de toutes les fonctions commençant par "gl" ? Est-ce que si ton curseur est à côté d'un "(" ou d'un "{", celui qui correspond et ferme le bloc/les parenthèses apparaît en gras (ou en couleurs) ? Et si tu fais une erreur de syntaxe, est-ce qu'elle apparaît différente dans le code source ? Et si tu tapes "glColor3f(" et que tu fais TAB, est-ce que tu vois les arguments de la fonction en tooltips ?
Je veux juste savoir si Dev-C++ peut faire tout ça (j'ai pas la dernière version, depuis que ça marche pas, j'en ai eu marre, la seule version qui marche chez moi est la 4 !!).
Si oui, alors j'essaierai...

signaler à un administrateur
Commentaire de trinitacs le 19/07/2003 00:17:33

kirua >> l'option -s infique au compilo d'envoyer toutes les options qu'il ne connaît pas au linker. Ensuite ne me demande pas pourquoi l'éxécutable est plus petit mais tout ce que je sais c'est qu'il diminue environ de moitié à chaque fois :)

Je vais essayer de faire un tut là dessus puisque tu est interressé.

Pour ce qui est de mandrake je pense qu'il faut plutot que tu recompile ton noyau au lieu de dire ma propre distrib. C'est un passage obligé. Par exemple pour installer les drivers de mon modem c'est ce que j'ai dû faire. Mais bon le makefile était déjà préparé heureusement :)

funtoo >> Tu dis le petits désavantage du const mais pas ceux des define. Je dois dire pour équilibrer que les define peuvent-être redéfinient sans qu'on s'en aperçoive. Ensuite c'est un vrai catastrophe car on s'arrache les cheveux à chercher là où il ne faut pas. Et franchement c'est pas avec des define que l'on résuit la mem utilisée par un prog. Bon on ferme avant que ça devienne un troll ;)

kirua >> Pour le printf je sais très bien que c'est pratique pour débuger, je fais la même chose. Mais cependant utilises les objets de flux du C++ si tu fais du C++. C'est un peu comme si tu m'étais une carosserie de clio sur une porsches.

Oui l'algo de Wett est excellent à condition qu'on ne puisse pas faire des terrains immenses :o

Pour ce qui est de VC et DevCpp c'est une question de goût car les deux sont très bien. Mais je préfère DevCpp car je sais que mon code sera portable sans problème sur un unix par exemple. En plus VC 6.0 est assez vieux et ne respecte pas les dernières normes de l'ANSI/ISO et je trouve ça gênant. Et puis quand j'ai le fois entre utiliser un logiciel libre et cracker un programme payant je prend la première solution.

funto >> Quelle version de DevCpp as tu utilisé? La 5 est une bêta et elle n'est pas très stable, par contre la 4 fonctionne très bien chez moi. Ensuite DevCpp 5 propose la complétation du code également et tu peux le paramétré. D'ailleurs pleins d'éditeurs le proposent.

Wett >> Dans DevCpp tu peux également aller à la définition ou la déclaration d'une fonction tout comme une classe ou une variable.

signaler à un administrateur
Commentaire de Kirua le 19/07/2003 01:12:42

ah ok, on sait pas pq mais ça marche donc... tant mieux ^^

bah oui du noyeau (kernel), bien sur mais je caricaturait parce que tt ce que j'ai lu n'était vrmnt pas clair, alors bon, bof quoi :-) et chez Blekin autant que chez D-Link, pas de drivers linux, c con.

j'aime pas les voitures mais j'aime bien le C++, alors passons les comparaisons ;-) mais j'y penserai (promi juré!)

je suis de tte façon limité à 256 cases, puisque sauf erreur, un tableau type Cube cubes[NB_CUBES] ne peut pas être plus grand que 256 entrées, si? en tt cas c ce que j'ai ds la tête depuis longtemps et je sais pas pq. je devrais utiliser des listes chaînées pr dépasser et ça m'amuse pas du tt du tout

surtout à qualité égale, bon c vrai que DevC++ (quand on voit tt ce que tu m'as dit funto) est moins puissant, mais regarde: on fait des choses bien aussi :-D ;-) non ok VC++ justifie peut etre son prix par ses fonctions, mais comme dit trinitacs, DevC++ est plus à jour car constamment amélioré, donc respecte mieux les "nouveaux" standards. (au fait, ANSI ça veut dire quoi? ou plutot, qu'est-ce que c ?)

oui la complétion du code y est (j'utiliser 4.9.8.0), mais je dois reconnaître qu'elle est un peu boiteuse, on c pas trop quand elle apparaît et quand non. par contre les infos sont correctes (ouf ^^)

c ce que je disais ds mon message précédent dans une phrase tellement mal construite que tu l'as pas comprises, dsl ^^ mais donc oui je confirme c possible.

en fait la v4.9.x.x est la bêta 5, et parfois elle plante sans trop savoir pq (on dirait windows ^^). puis aussi (en tt cas avec la 4.9.6.0, j'ai changé depuis très peu (2 jours), quand on compile en ayant modifé des fichiers, il s'en rend pas tjs compte alors il faut faire un make t puis une compile -> 2x plus de temps, c énervant. c pe corrigé ça.

signaler à un administrateur
Commentaire de Kirua le 19/07/2003 01:13:32

j'oubliais, je vous quitte pr 2-3 semaines ^^ je répondrai probablement pas sauf si je trouve un accès internet là ou je vais, ce qui devrait être possible. à ciao bonsoir! je vais coder ailleurs ;-)

signaler à un administrateur
Commentaire de Funto66 le 19/07/2003 15:17:03

Kirua si tu me lis..... >>  je sais pas d'où tu nous sort qu'un tableau peut faire que 256 cases au maximum; tu devrais essayer de marquer Cube cubes[300]; et tu verrais...
Tu utilises Dev-C++ 4.9.6.0 ? Si t'as eu des problèmes avec la 4.9.8.0, sache qu'il y a une update vers 4.9.8.1, je sais pas si ça arrangera tes probs...
Sinon, on peut pas dire que Visual C++ SEUL soit tellement meilleur que Dev-C++ (à part pour l'édition des ressources), c'est surtout quand on y ajoute Visual Assist que la comparaison tient plus...
ANSI, ça veut dire "American National Standard ....je sais plus le I :)", c'est un organisme qui s'occuppe de définir un standard pour les langages, ce qui évite de voir plusieurs versions incompatibles : c'est parce que le BASIC a été normalisé trop tard que toutes les versions sont incompatibles (si, si, je crois qu'il existe une version ANSI ou ISO je sais plus...)
trinitacs >> on arrête le troll, je te laisse le dernier mot :) J'ai Dev-C++ 4.9.6.0 et Dev-C++ 4.1, et je n'ai que le 2ème qui marche, l'autre ne marche pas "complètement" : si je fais une erreur, il ne me compile pas mais ne me dit pas pourquoi !! Quoi que je compile, le seul message que j'ai est un "clock skew detected".

signaler à un administrateur
Commentaire de trinitacs le 19/07/2003 16:51:25

kirua <<"et je sais pas pq. je devrais utiliser des listes chaînées pr dépasser et ça m'amuse pas du tt du tout"
Car la STL offre le conteneur list qui offrira plus de souplesse afin de modifier la taille du jeu sans recompiler.

signaler à un administrateur
Commentaire de eldered le 21/07/2003 01:06:28

Hum ... a propos du random et de la liste chainé, j'ai eu le meme problème pour un jeu de freecell {sur ce site d'ailleur} ou il fallait tiré des cartes au "hazard" {a savoir qu'un random ne se fait pas au hazard ...} et je me suis contenté de tiré une carte et de la comparé avec les cartes deja tirée, si elle était deja tirée je recommencait le procédé jusqu'à tomber sur une carte non tiré, puis je la placé .. etc ... ms c trés lours et trés nul en fait, j'ai réfléchi un peu sur le sujet et il est vrai que la meilleur solution qui m'est venu a lidée ct une liste chainée ... je pense k'il n'y a pas mieux !

Sinon, J'utilise dev c aussi et je le trouve trés bien.

Pour terminer, super ton logiciel, je commence a faire un nouveau jeu, et je compte utiliser la librairie SDL ... c bien ou pas ???

++ all

signaler à un administrateur
Commentaire de Funto66 le 21/07/2003 07:41:00

SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant que SDL. C'est sûr, c'est pas aussi rapide que OpenGL mais tu peux faire des trucs pas mal. Ensuite, si tu veux essayer OpenGL, tu peux gérer de façon portable ta fenêtre avec SDL et ensuite utiliser OpenGL dedans, ce qui est à mon avis le meilleur choix. Mais tu peux très bien rester à SDL :)

signaler à un administrateur
Commentaire de eldered le 21/07/2003 11:23:23

héhé ok, merci bien, et des sites sur sdl, vous en avais vers les kels me diriger ?

Et Open gl c compliqué ou pas ?

++

signaler à un administrateur
Commentaire de Funto66 le 21/07/2003 12:17:12

OpenGL, c'est pas compliqué => http://glinfrench.apinc.org => GLInFrench.
                                         => http://prografix.games-creators.org/ => ProGrafiX
SDL, c'est pas compliqué non plus : => http://www.libsdl.org => (site officiel de SDL)
                                    => http://www.programmationworld.com/site/
=> ProgrammationWorld : des tutos sur SDL entre-autres (y'a aussi du DirectX et de l'Allegro).
                                    => ProGrafiX a aussi des tuts sur SDL (notamment installation sous VC++).

signaler à un administrateur
Commentaire de eldered le 21/07/2003 12:25:17

Merci !!! Je zieute ça et je te dis koi !!!!
++

signaler à un administrateur
Commentaire de trinitacs le 22/07/2003 19:22:39

funto66 << "SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant que SDL"
Vraiment tout? Bon une fois de plus je ne suis pas d'accord avec toi :p

Voici d'autres liens:
http://www.gamedev.net/
http://www.gametutorials.com/
http://www.gamasutra.com/
http://www.flipcode.com/

bonne lecture ;)

signaler à un administrateur
Commentaire de Funto66 le 22/07/2003 20:15:01

trinitacs >> Tu n'as pas lu le post entier je pense. D'ailleurs, si tu relis "SDL c'est bien pour faire des jeux 2D. D'ailleurs, c'est tout ce que tu peux faire en n'utilisant QUE SDL", tu remarques le "que". Si tu lis la suite du post, tu verras que je dis qu'on peut créer sa fenêtre avec SDL et utiliser OpenGL dedans.
Pour les sites que tu m'as donnés, je les connaissais :)

signaler à un administrateur
Commentaire de Kirua le 31/07/2003 13:56:53

merci pr ts ces messages, je suis loin la, et g enfin mis la main sur un bar civilise avec internet.
eldered, pr SDL je sais pas, si je l ai utilise c a l insu de mon plein gre ;-) veuillez pardonenr l absence d accents c un clavier qwerty icim salete !!

je dois vous laisser, je lirai et repondrai plus amplement ds qq jours, ciao a tous !!

signaler à un administrateur
Commentaire de trinitacs le 07/08/2003 15:23:01

funto66 >> es-t-on obligé d'utiliser opengl pour faire de la 3D? Non, il suffit simplement de connaître calcules de la perspectives afin de donner l'impression de profondeur. Donc non avec que SDL tu peux aussi faire de 3D.

signaler à un administrateur
Commentaire de Funto66 le 07/08/2003 16:46:48

trinitacs >> ouais, ben je te laisse la faire la 3D avec SDL, ce que tu me dis, c'est de carrément créer une librairie qui s'appuierait sur une fonction du style putpixel() qui elle resterait dépendante du moteur. Donc, beaucoup de maths, pas d'accélération matérielle (enfin si, mais avec DirectX 5 sous Windows, mais on n'utilise presque rien comparé à ce qu'elle peut prendre en charge maintenant), beaucoup de code, il faut "réinventer" le calcul des lumières si tu veux avoir un rendu correct.........
mais oui, techniquement, c'est possible, mais bon.... Je te laisse essayer ;)

signaler à un administrateur
Commentaire de Kirua le 08/08/2003 01:11:38

un programmeur a posté un moteur 3D software sur le réseau il y a peu, ou du moins un début. c'est évidemment possible, d'ailleurs opengl, ce n'est "que" ça, avec de l'appuis hardware, mais vu le nb de difficultés qui se posent déjà pr UTILISER un moteur 3D efficacement, tu crois pas que c un peu ... euh... une perte de temps de vlr en écrire un toi-même? sans vlr être vexant ou encore mettre tes facultés en doute, il me parait assez improbable que tu parviennes à faire ne fut-ce qu'un équivalent d'OpenGL, DX ou autre, ces moteus ont été dvp par des bataillons de professionnels pdt des années, avec des budgets collosaux, ce n'est pas vrmnt à la portée d'un programmeur seul.

signaler à un administrateur
Commentaire de eldered le 14/08/2003 20:14:25

Hum, je pense aussi ... ^^

signaler à un administrateur
Commentaire de AmK le 15/08/2003 19:15:00

meme avec allegro on peu faire de la 3D ,en plus l'avantage c'est que dans le zip d'installation ya des exemples commentés en 3D !!!

signaler à un administrateur
Commentaire de Mistral12 le 28/08/2003 03:18:26

Salut à tous ^^
je viens de m'inscrire sur ce site ^^
je vois que ton jeu de serpen semùble super
alors je suis en train de le télécharger ^-^
je suis débutant en CCPP
et j'utilise DEVCPP version 4
l'autre version ne marche pas :(
Je pense que VC est bien pour les déburtants
et pour les comfirmés , devcppp est le top !
C'est vraiment un bon soft mais j'ai un problème :(
Je ne possède pas de manuel de référence
sur le C avec toutes ses fonctions détaillées,
est ce que quelqu'un peut m'informer et me donner
une réponse??
Si je fais un jeu , je me mettrai ici
j'ai bien un projet mais
j'ai besoin d'aide alors help me !
Encore une fois , merci ,

signaler à un administrateur
Commentaire de Funto66 le 28/08/2003 12:09:28

http://casteyde.christian.free.fr/
Le meilleur cours de C++ du net.
Si avec ça ça ne te suffit pas, tu as la MSDN de Microsoft, sur leur site, qui est la documentation des dévelopeurs, et qui contient entre-autres des infos sur les fonctions du langage C/C++.
Et il me semble qu'il y a pas mal de trucs dans le menu Aide (ou ? je sais plus) de Dev-C++ 4 ;)

signaler à un administrateur
Commentaire de Mistral12 le 28/08/2003 13:48:30

Salut Funto66 , je te remercie vivement pour ton aide
c'est vraiment sympa de toi !!
au fait Kirua , j'ai eu un problème au démarrage du jeu au serpent 3D
j'avais juste l'écran de départ mais impossible d'accéder au jeu ,
mais en relisant ton premier post, je vais faire ce qu'il faut
pour placer les fichiers importants !!
j'espère après cela pouvoir voir ce jeu d'ici quelques minutes !
c'est la raison de mon inscription ici , en fait.
car Je ne connaissais pas du tout ce site avant,
J'ai vu que tu avais envoyer d'autres sources de programmes ^^
bon, si tu n'y vois pas d'inconvénient, on va allez voir ce que
sait , hi hi :-)

signaler à un administrateur
Commentaire de Kirua le 29/08/2003 02:50:04

dev c++ et VC, c pas une différence d'expérience, mais d'affinité et de budget. perso je me contente de dev C++ qui remplit très bien son office pr pas un rond, pas de raison de passer à l'autre, et je ne vois pas ce qui empêche un parfait débutant de commencer par là.

si tu ne maîtrises pas encore le C++, ne pense pas à l'opengl, ça va t'embrouiller, donne toi qq mois pr avoir une bonne connaissance de la syntaxe pure, des accès fichier, (des sockets peut etre?) etc. Après envisage l'opengl, il y a des tas de sites.

je ne peux pas élaborer car je suis chez un ami, mais tu peux tjs me parler sur msn si tu veux un coup de main, nicolasboumal @ hotmail . com. je rentrerai dans 3 jours, donc voilà. sahce aussi que funto a une bonne connaissance théorique, ça pourra te servir, plus que moi !

ciao

signaler à un administrateur
Commentaire de cppdupdup34 le 06/12/2003 23:15:24

et toi kirua il a pas bouge depuis longtemps ton snake faudrait lui donner un coup de jeune
rien que de la musique ca serait beuacoup mieux
contrairement a moi tu poste des projet finit ou presque et c'est tout a ton honneur
il etait bien des le depart ton snake pas comme le vieux machin que j'avais posté |-)

signaler à un administrateur
Commentaire de neo_00110010101 le 22/05/2004 22:30:20

Excellent ! Je viens de faire un score de 32 et je viens même de rater un appel sur mon portable tellement ce jeu est prenant ! Merci bien :] 9,5/10

signaler à un administrateur
Commentaire de Kirua le 22/05/2004 22:39:22

:p merci pour ce message, c'est sympa d'écrire même pour ça ^^
j'aurais peut-être dû faire une case plus grande, parce que c'est quand même pas tout simple comme jeu, 32 c pas mal ^^

signaler à un administrateur
Commentaire de AmK le 22/05/2004 22:58:31

32 eh ben !!!
je me souviens pas avoir depassé 20 moi :) lol

signaler à un administrateur
Commentaire de neo_00110010101 le 23/05/2004 11:26:26

Avec (bien sûr) pas mal de difficulté au début =) et puis j'ai fini par mettre 10 pour monter la note (y'a pas de 9.5 !!!) lol, @+

signaler à un administrateur
Commentaire de Kirua le 23/05/2004 12:38:58

raaah, j'ai recommencé une partie et j'ai 20, sgnif, je suis mauvais -_-'

signaler à un administrateur
Commentaire de CYouness le 17/10/2004 14:16:55

c génial ton serpent.......rien à dire.....courage et continue comme cela.............

signaler à un administrateur
Commentaire de wiaeke le 21/02/2005 20:27:09

a vrai dire il faut se demander ou il va pioche ces codes et ces idees sinon pour dire en clos kirua est un grand tres grand et grand programmeur
je soyez pas jaloux svp
de tres beau jeu

signaler à un administrateur
Commentaire de Kirua le 21/02/2005 20:32:42

Euh, c'est des cubes qui bougent, c'est pas extraordinnaire :p En plus c'était il y a longtemps, c'est mal codé, il y a des incohérence etc. C'est à la hauteur de ce que je savais faire avant, mais y a vrmnt pas de quoi s'émerveiller, calme, calme ^_^.

signaler à un administrateur
Commentaire de souf_ le 13/09/2006 01:32:57

bonjour a tous
je débute avec la programmation sous dev c++ avec opengl j'ai compiler un programme mais j'ai les erreures suivantes

  cannot find -lobjc
  ld returned 1 exit status
C:\Dev-Cpp\temp\Makefile.win [Build Error]  [Project1.exe] Error 1

signaler à un administrateur
Commentaire de Kirua le 13/09/2006 10:04:13

C'est un fait.

Et ta question est?

signaler à un administrateur
Commentaire de samersahih le 13/01/2008 14:50:46

j'essaye de compiler mais je pense qu'il ya un probleme de linkage avec l'erreur suivante :

main.obj : error LNK2001: unresolved external symbol "public: __thiscall Jeu::Jeu(void)" (??0Jeu@@QAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Jeu::ReSizeGLScene(int,int)" (?ReSizeGLScene@Jeu@@QAEXHH@Z)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall Jeu::KillGLWindow(void)" (?KillGLWindow@Jeu@@QAEXXZ)
main.obj : error LNK2001:

c'est quoi cette erreur ??

signaler à un administrateur
Commentaire de Kirua le 13/01/2008 21:38:18

Wah ... Euh, le code date de la fête nationale française de 2003, alors ... :D Désolé, mais je ne saurais pas t'aider :). Ceci dit, si tu utilises VC++ et pas Dev-C++, tu dois définir toi-même les libraires avec lesquelles lier. L'erreur vient sans doute de là, tout simplement.

signaler à un administrateur
Commentaire de Funto66 le 14/01/2008 10:09:07

Bin visiblement, le pb semble plus venir du fait qu'il ne compile pas l'implémentation d'une certaine classe Jeu...
Samersahih >> es-tu sûr d'avoir bien ajouté le fichier jeu.cpp au projet?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.