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 !

TETRIS JEU AVEC OPENGL/GLUT


Information sur la source

Catégorie :Jeux Classé sous : tetris, glut, opengl, c, jeu Niveau : Débutant Date de création : 22/06/2003 Date de mise à jour : 30/10/2006 02:14:15 Vu / téléchargé: 5 243 / 706

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

Cliquez pour voir la capture en taille normale
salut,
voila, c'est mon premier jeu et j'espere qu'il sera a la hauteur.
j'aimerai avoir de vos commentaires [une note sur 10] etant donne que je debute.
merci

options:
fleches -> experimentez les
p -> pause

il y a des options integrees avec le jeu [ nouvelle partie - charger(c) - enregistrer(e) - quitter ]
 

Conclusion

faites moi connaitre vos commentaires svp
 

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

30 octobre 2006 02:14:16 :
ajouter les mots-clés

Commentaires et avis

signaler à un administrateur
Commentaire de Funto66 le 22/06/2003 14:57:45

Salut badrbadr !
Ton Tétris est pas mal; il n'y en n'a que 2 sur le site le tien et le mien :) q (en tous cas j'en n'ai pas trouvé d'autres) que tu peux trouver à :
http://www.cppfrance.com/article.aspx?ID=1958

Ton Tétris est plus abouti que le mien :) avec la gestion des meilleurs scores, une texture en fond, des sons, des boutons...
J'ai vu que pour les différentes figures, ça tenait dans un fichier fichier.fig; en + on peut rajouter de nouvelles figures sans toucher au code ?? Aussi, bravo pour le chargement de texture sans utiliser de librairie comme Glaux ou DevIL !

Donc voilà pour les points positifs, maintenant je trouve que le jeu est un peu lent (en tous cas sur ma bécane, 600 Mhz et ATI Rage Pro...)
Aussi, je sais pas si c'est normal, mais la musique s'arrête dès que l'on appuie sur la flèche du haut :(
Aussi, tu aurais peut-être dû mettre ton jeu totalement en orienté objet C++; tu n'en n'est pas loin avec tes structures.
Aussi, au niveau du code, au leiu de faire un FreeConsole() au début du main, tu aurais pu changer les paramètres de ton projet à la compilation; dis-moi quel compilo tu utilises et je te dirai comment il faut faire.
Aussi, c'est + gênant, au niveau des déplacements des pièces, je pense que ce serait mieux de pouvoir déplacer les pièces sans devoir attendre que ce soit le moment où la pièce descend d'un cran, enfin je sais pas si j'ai été clair... :)

Et ce Tetris, tu l'as fait en 2002, et pourquoi tu l'as pas mis sur le site avant ?

Bon, c'était long, mais j'ai plus rien à dire :)

signaler à un administrateur
Commentaire de gogo.prog le 22/06/2003 15:29:02

tous ces gens qui debutent et qui font des jeux utilisable...
moi je debute vraiment, je ne comprend pas cmt ca marche glut en c++ :/

signaler à un administrateur
Commentaire de AmK le 22/06/2003 17:08:04

tiens voila 10/10 :)
merci qui?

signaler à un administrateur
Commentaire de badrbadr le 22/06/2003 17:28:09

salut funto66,
j utilise Visual C++ 6, et j'aimerai savoir le moyen de me passer des "FreeConsole". tu connais le moyen?
merci

signaler à un administrateur
Commentaire de badrbadr le 22/06/2003 17:29:25

en passant allez voir mon autre programme.
une belle animation.
quoi qu'il faut un puissant ordinateur.

signaler à un administrateur
Commentaire de badrbadr le 22/06/2003 17:44:56

MERCI BEAUCOUP FUNTO66
en passant:
connaissez-vous des trucs pour améliorer la vitesse des jeux 2d.
merci encore

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

Re-salut badrbadr !
Pour se passer des FreeConsole sous Visual C++ :
-Ouvre le menu Project->Settings
-Onglet Link
-Dans la zone de texte du bas "Project Options", tu cherches où est marqué "/subsystem:console" et tu le remplaces par "/subsystem:windows" (sans les guillemets)
-Ensuite, tu dois indiquer que ton programme commence avec main(); dans la liste "Category", tu choisis "Output", et dans "Entry-point symbol", tu tapes exactement "mainCRTStartup" (sans les guillemets).

Pour ce qui est de l'optimisation de ton jeu, je vois pas trop où y'en aurait besoin à part ce que je t'ai dis dans le premier post à propos du déplacement contrôlé par le joueur, qui ne doit pas dépendre de la descente de la pièce.
Tiens, en re-survolant ton code, je viens de voir glutTimerFunc; connaissait pas, on en apprend tous les jours :) Merde, moi je m'étais fait chier avec les <sys/timeb.h> et compagnie pour contrôler le rythme !!

Ben voilà :)

signaler à un administrateur
Commentaire de Funto66 le 22/06/2003 18:24:55

Ah oui, j'ai oublié un dernier truc; pour les sons, tu devrais utiliser FMOD; c'est une librairie vachement puissante (plusieurs sons à la fois, sons 3D...) qui est gratuite et portable : www.fmod.org
Tu pourrais porter ton Tetris sous Linux :)

signaler à un administrateur
Commentaire de badrbadr le 22/06/2003 19:37:14

Que de bonnes idées Funto.
merci pour la technique sous vc++, elle drolement interressante et même utile.
j'avoue que la programmation Linux me fait peur. mais si j'ai la derniere version de Mandrake(la plus facie). Je tiens d'abord à maitriser un peu la programmation sur windows.
merci encore pour ta technique sur vc++

signaler à un administrateur
Commentaire de Funto66 le 22/06/2003 21:13:32

Pour porter ton programme sous Linux, y'a que quelques modifs à faire, qui consistent à supprimer le code qui utilise windows.h, comme PlaySound, que tu pourrais remplacer par FMOD.
Un bon site sur fmod : http://fmod-fr.apinc.org

signaler à un administrateur
Commentaire de trinitacs le 23/06/2003 10:05:08

"connaissez-vous des trucs pour améliorer la vitesse des jeux 2d."
- Tu peux désactiver certaines options d'OpenGl qui ne te sont pas nécessaire.
- Améliorer l'envoie des vertex, couleurs à OpenGl. Car à chaqque fois tu fais glVertex*( ... )  Utilise plutot les ffonctions glVertexPointer, glColorPointer etc...
- Ensuite tu devrais créer plussieurs fichiiers soources

Pour ce qui est de C++ je trouve qu'il en esst encore loin. Les fonctions fprintf et cie et son code procédurale c'est loin d'être du C. En C++ l'unité de programmation c'est la classe et non la foonction comme en C.

Sinon tu devraais remplacer tes //*************************** par une brève description de tes fonctions :)

badrbadr: "j'avoue que la programmation Linux me fait peur", " Je tiens d'abord à maitriser un peu la programmation sur windows"
Tu sais je ne connais ni la prog windows, ni la prog linux. Je me contente de faaire des codes portables en utilisant des bibliothèques. Ainsi j'utillise glfw pour OpenGl: http://hem.passagen.se/opengl/glfw/

signaler à un administrateur
Commentaire de trinitacs le 23/06/2003 10:11:20

J'ai remarqué qu'il y avait énormément de boucles for dans ton code. Revoie ton algo et pour limiter lle nombre de for et tu optimises les boucles qui te  restent. Tu peux "dérouler" tes boucles  et améliorer ton code en suprrimant ce qui est inutil.

signaler à un administrateur
Commentaire de Funto66 le 23/06/2003 17:42:44

badrbadr, un tout dernier truc : tu as oublié de choisir la catégorie "Jeux" quand tu as ajouté ta source; il suffit que tu ailles à "Modifier une source"

trinitacs>> Pour ce qui est de la POO, je trouve qu'il n'en est pas tellement loin; il a une structure "jeu" et des fonctions globales qui concernent le déroulement du jeu, il lui suffirait juste d'encapsuler ces fonctions  dans une class "jeu". Aussi, une question; GLFW est meilleur que GLUT et encore développé ou pas ?

signaler à un administrateur
Commentaire de badrbadr le 23/06/2003 19:41:42

merci pour vos commentaire tout le monde

signaler à un administrateur
Commentaire de trinitacs le 24/06/2003 11:21:26

GLUT n'est plus développpé depuis 1997, donc tu ne tire pas profit de t'as dernière Gforce.
GLFW est encore développé et est dispponible sur plusieurs platformes.
GLUT propose plus de fonctions que GLFW.

Je préfère utiliser GLFW à GLUT car c'est moins contraignant: pas obligé de faire certaines fonctions etc...
En plus GLFW est léger.

Pour faire de la POO il ne sufffit pas de remplacer struct par class. Ca apporte une autre logique de fonnctionnement comme l'héritage par exemple. En même temps son code utilises des fonctions C. Donc pour faire vraiment un code objet il doit tout le recommncer pratiquement.

signaler à un administrateur
Commentaire de Funto66 le 24/06/2003 12:22:51

Je suis allé faire un tour sur le site de GLFW par curiosité.
Et là je vois que la dernière new date du 27 janvier 2003.
Dommage... :(

"GLUT n'est plus développpé depuis 1997, donc tu ne tire pas profit de t'as dernière Gforce."
De toutes façons j'ai une vieille carte pourrie :)
Mais je vois pas trop ce que tu veux dire : GLUT et GLFW servent à gérer les fenêtres et l'input clavier et souris, donc à quoi sert la dernière GeForce ? A moins que tu ne fasses allusion aux fonctions du style glutSolidSphere()...etc
Par contre un truc qui est intéressant avec GLFW que j'ai vu sur le site : chargement de TGAs :) Mais comme j'utilise DevIL, ça me servira pas beaucoup.
Je comprends toujours pas ce que tu as contre les fonctions C standard dans la POO... Tu utilises bien OpenGL et GLFW qui sont écrites en C dans un programme en C++, non ?

signaler à un administrateur
Commentaire de trinitacs le 24/06/2003 13:38:32

"Je comprends toujours pas ce que tu as contre les fonctions C standard dans la POO... Tu utilises bien OpenGL et GLFW qui sont écrites en C dans un programme en C++, non ?"
Pour lire des fichiers, le C++ propose ses propres classe de flux, alors pourquoi utiliser des fonctions C quand  il y a les même souvent bien mieux en C++ ?
Si tu programmes en C, utilise les fonctions C; si tu programmes en C++ utilises les fonctions C++. Tu n'est pas obligé de le faire mais ça fait porcos sinon.

signaler à un administrateur
Commentaire de Funto66 le 24/06/2003 14:31:52

C'est un point de vue, on en a déjà discuté, j'arrête :)
trinitacs, pourquoi t'as mis aucun de tes progs en OpenGL sur le site ?

signaler à un administrateur
Commentaire de trinitacs le 24/06/2003 19:18:49

Je n'y avais jamais pensé et la plus part du temps je ne termine pas mes sources :)

signaler à un administrateur
Commentaire de Funto66 le 26/06/2003 10:43:18

De toutes façons, beaucoup des sources de ce site ne sont pas terminées ! Allez trinitacs, s'il te plaît ... :)

signaler à un administrateur
Commentaire de twxs256 le 01/07/2003 09:37:27

"Pour faire de la POO il ne sufffit pas de remplacer struct par class..."
juste au passage : rien ne t'empeche de faire du C++ avec des struct.
les struct, en c++, supportent methode, heritage, ctor, ... la seul difference avec une classe c'est que tout est public. Donc si tu n'a pas besoin de membres prives ou protected, struct == class!!

signaler à un administrateur
Commentaire de twxs256 le 01/07/2003 09:38:02

"Pour faire de la POO il ne sufffit pas de remplacer struct par class..."
juste au passage : rien ne t'empeche de faire du C++ avec des struct.
les struct, en c++, supportent methode, heritage, ctor, ... la seul difference avec une classe c'est que tout est public. Donc si tu n'a pas besoin de membres prives ou protected, struct == class!!

signaler à un administrateur
Commentaire de twxs256 le 01/07/2003 09:38:20

"Pour faire de la POO il ne sufffit pas de remplacer struct par class..."
juste au passage : rien ne t'empeche de faire du C++ avec des struct.
les struct, en c++, supportent methode, heritage, ctor, ... la seul difference avec une classe c'est que tout est public. Donc si tu n'a pas besoin de membres prives ou protected, struct == class!!

signaler à un administrateur
Commentaire de Funto66 le 01/07/2003 10:39:26

Correction : tout est public dans une struct _par défaut_ alors que tout est private dans une class _par défaut_; si tu fais:
struct UnClasse
{
private:
  // ce que tu veux...
};

tu as l'équivalent d'une class.

signaler à un administrateur
Commentaire de twxs256 le 01/07/2003 12:18:28

autant pour moi, le "par defaut"  ete sous entendu...

signaler à un administrateur
Commentaire de Funto66 le 01/07/2003 15:12:10

"autant pour moi" --> Kirua m'a appris sur ce site qu'on écrivait "au temps pour moi" et non "autant pour moi", et qu'il tenait ses sources de l'académie française.
Quand j'ai appris un truc, je le resors :)

signaler à un administrateur
Commentaire de hamrouni le 13/09/2005 21:11:51

pas mal

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Pour 2d opengl/glut > ddraw ? [ par gimli123 ] Bonjour à tous, j'ai tester les 2, à savoir direct draw et opengl/glut, mais j'aimerai savoir si il y en as un qui est plus performant que l'autre et QT OpenGL FPS [ par xabila ] bonjour, voilà j'ai passé un de mes codes glut OpenGL sous QT et en fait je n'arrive pass à convetir mon calcule des fps qui étai probleme pour creer demineur en opengl avec glut (dev c++) [ par bat0001 ] Dans le cadre d'un projet en informatique, je dois faire un demineur avec une interface graphique avec opengl (glut). etant debutant en la matiere, je transparence (Opengl & Glut) [ par norton ] Bonjour, j'utilise la librairie Glut pour mon jeu. j'aimerai charger un sprite et l'appiqué sur un carré dessiné avec glut (taille de la texture 64*64 superposer des images en opengl/glut [ par gimli123 ] Bonjour, est-il possible de superposer de .tga ?Et au faite, en passant, comment doit-on faire pour que les images bouges en translation ? si oui comm system coordonne opengl/glut [ par gimli123 ] Salut tout le monde je suis en train de faire un petit jeu(tout du moins j'essai) et donc pour le menu je fais des boutons. Mais lorsque j'essai de fa OpenGL et Glut: saisie clavier [ par bluelambda ] Salut à tous ! Voilà j'ai fait un petit programme qui utilise OpenGL avec GLUT. C'est un programme très basique, avec juste une fonct Curseur de la souris avec opengl/glut [ par mondrone ] comment faire pour rendre la souris invisible avec opengl et ou glut ? J'ai deja vu qu'on peut changer le curseur, mais pas qu'on peut soit mettre une Opengl glut debutant menu graphique [ par gravel ] Bonjour, j'aimerais savoir comment on fais en opengl/glut pour faire afichier un image fixe. Je veux dire que si j'ai un screen en 800x600 et que j'm' Souris & OpenGL (Glut) [ par norton ] hello, j'aimerai afficher un bitmap à la position de la souris (au clique)pour ce qui est de l'axe X pas de prob mais en Y y a un ptit souci


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

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,421 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é.