begin process at 2010 03 22 12:13:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > MARIO EN SDL

MARIO EN SDL


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Jeux Classé sous :Mario, SDL, SDLttf, ndubien Niveau :Débutant Date de création :06/02/2008 Date de mise à jour :06/02/2008 15:06:19 Vu / téléchargé :8 877 / 890

Auteur : ndubien

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voici un Mario en C++ utilisant SDL…

Quelques explications :
- J’ai choisi de ne pas utiliser SDL_image pour dessiner Mario et ses ennemis afin de pouvoir personnaliser les couleurs des personnages. Ainsi on peut choisir la couleur de Mario…
(très utiles si on adapte le jeu en multijoueurs)
- Les classes sont dans des fichiers .h et pas dans des fichiers .cpp comme l’on a l’habitude de le faire : mais l’intérêt d’un code  est avant tout qu’il fonctionne.

Soyez indulgents, il s’agit de ma première source utilisant SDL.
Vos commentaires, idées d’innovations, critiques… sont les bienvenues afin d’améliorer cette source le plus possible.

Pour informations, on peut très facilement ajouter un Mario pour en faire un jeu multijoueurs.

Besoin d’aide : Si quelqu’un sait comment faire des jeux de PS afin que je l’adapte sur console merci de me l’indiquer.

Source

  • // L'exécutables est dans le ZIP : .ex_
  • // 9 niveaux sont déjà disponibles...
// L'exécutables est dans le ZIP : .ex_
// 9 niveaux sont déjà disponibles...

 Conclusion

Contrôles du personnages...
- TABULATION basculer en mode plein écran
- ESPACE tirer une fléchette
- gauche, droite, haut ou bas diriger le Mario
- ECHAP menu principal
- C retour au dernier CheckPoint
- R retour à la case départ

Un exécutables est dans le ZIP : .ex_.

Sur ce, amusez-vous bien!!! ;)

 Fichier Zip

Les Membres Club peuvent 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 février 2008 15:06:19 :
Correction d'une faute d'orthographe

 Sources du même auteur

Source avec Zip Source avec une capture TAMIS ET TAPIS DE SIERPINSKI
Source avec Zip Source avec une capture ARBRE2D: UN PROGRAMME GÉNÉRANT DES ARBRES
Source avec Zip Source avec une capture SIMULANCE, UN SIMULATEUR DE LANCER D'OBJET
Source avec Zip BEEPER, UTILISER UN HOOK CLAVIER INTÉGRÉ À L'EXÉCUTABLE ET G...
Source avec Zip Source avec une capture MORSEPLAYER, JOUER UN MESSAGE MORSE

 Sources de la même categorie

JEU DU PENDU !!!! VERSION SIMPLIFIÉE ET FACILE par seyidleite
Source avec Zip PUISSANCE 4 EN SDL, AVEC SAUVEGARDE , JOUEUR VS JOUEUR OU IA... par diablosephiroth
Source avec Zip Source avec une capture TETRIS 1.0 (C & SDL) par c1702
Source avec Zip Source avec une capture LE PENDU (PAR CRAZYGOODBOY) par CrazyGoodBoy
Source avec Zip Source avec une capture PLUS OU MOINS par antho974

 Sources en rapport avec celle ci

Source avec Zip PUISSANCE 4 EN SDL, AVEC SAUVEGARDE , JOUEUR VS JOUEUR OU IA... par diablosephiroth
Source avec Zip Source avec une capture TETRIS 1.0 (C & SDL) par c1702
Source avec Zip Source avec une capture HYPER SDL FRAMEWORK / HYPER SDL TEXT BOX par hypermb
Source avec une capture [DEV-CPP]UN TETRIS, ENCORE... par maxwells
Source avec Zip Source avec une capture SDL_TT ECRIRE DU TEXTE AVEC SAUT DE LIGNE. par gillescpp

Commentaires et avis

Commentaire de mogwai93 le 06/02/2008 15:51:04

1) pourquoi ne pas séparer le code des déclarations pour les .h ?

2) tu peux réduire la taille des exe :
Projet / Options du Projet
Onglet Compilation
Editeur de liens
==> retirer les symboles = yes
il passe à 400ko :-)

Commentaire de CCJ le 06/02/2008 22:36:54

Tres complet ! :D
Je n'ai jeté qu'un petit coup d'oeil mais l'enssemble est assé "souple" , je pensse aussi que l'implementation d'un mode multi-joueurs est largement possible.
Comme je l'ai dis je nai jetté qu'un oeil mais la seule chose qui a l'air manquante c'est du son , et pourquoi ne pas gerer les evenements avec un thread ? Ca pourrait etre interessant de voir comment faire tourner le jeu avec des evenement s non synchronisés avec l'affichage...
Bref pour le moment je ne peu pas en dire plus , mon pinguin s'est "coupé un doigt" ,il a du mal a compilé .
Je reviendrais voir ca en details plus tard et tu auras ta note ;)

Commentaire de max12 le 07/02/2008 20:20:26 administrateur CS

Tient : http://www.palib.info/wikifr/doku.php?id=day1

Avec le Kit on peut faire des jeux de Nintendoom DS/GBA mais aussi de PSP je crois. J'ai fait une petit jeux de tetris sur NDS et sa marchait assez bien.

happy prog

Commentaire de ndubien le 08/02/2008 18:27:17

Salut Max12 merci pour le site...

// POUR CEUX QUI SOUHAITENT L'ADAPTER EN MULTIJOUEURS : voici ce qu'il faut faire

Pour l'adaptation multijoueurs:
- mettre deux Marios dans vector lesMarios (pour informations on peut changer la couleur du Mario avec SetCouleur(r,g,b) ;))
- deux ARROWS dans GererMarios
- puis on change la fonction eventsModeJeu:

void eventsModeJeu( SDL_Event event ) {
    int i;
    switch( event.type ) {
        // Si on veut quitter, done = 1 suffira (car celà fini la boucle)
        case SDL_QUIT:
             done = 1;
             break;
        case SDL_KEYDOWN:
             if( event.key.keysym.sym == SDLK_ESCAPE ) {
                 JeuEnCours = 0;
                 for( i=0 ; i!= GererMarios.size() ; ++i ) {
                      if( i < lesMarios.size() ) lesMarios[ i ].PauseChrono( true );
                      GererMarios[ i ].gauche = false;
                      GererMarios[ i ].droite = false;
                      GererMarios[ i ].haut = false;
                      GererMarios[ i ].bas = false;
                      GererMarios[ i ].tirer = false;
                 }
                 SDL_ShowCursor( SDL_ENABLE );
             } else if( event.key.keysym.sym == SDLK_TAB ) {
                 if( affichagePleinEcran == true ) {
                     SDL_FreeSurface( screen );
                     screen = SDL_SetVideoMode( WIDTH, HEIGHT, 32, SDL_DOUBLEBUF | SDL_HWSURFACE );
                     SDL_ShowCursor( SDL_ENABLE );
                     affichagePleinEcran = false;
                 } else {
                     SDL_FreeSurface( screen );
                     screen = SDL_SetVideoMode( WIDTH, HEIGHT, 32, SDL_DOUBLEBUF | SDL_HWSURFACE | SDL_FULLSCREEN );
                     SDL_ShowCursor( SDL_DISABLE );
                     affichagePleinEcran = true;
                 }
                 if( screen == NULL ) done = 1;
                 DessinerCarte();
             } else if( event.key.keysym.sym == SDLK_r ) {
                    for( i=0 ; i!= lesMarios.size() ; ++i ) { lesMarios[ i ].RetourCaseDepart( i+1 ); }
                    ActualiserCarte();
                    for( i=0 ; i != lesEnnemis.size() ; ++i ) { lesEnnemis[ i ].Initialiser(); }
                    for( i=0 ; i != lesBoulets.size() ; ++i ) { lesBoulets[ i ].Initialiser(); }
             }
            
     /*POUR 2 JOUEURS*/
            
             else if( event.key.keysym.sym == SDLK_LEFT ) GererMarios[ 0 ].gauche = true;
             else if( event.key.keysym.sym == SDLK_RIGHT ) GererMarios[ 0 ].droite = true;
             else if( event.key.keysym.sym == SDLK_UP ) GererMarios[ 0 ].haut = true;
             else if( event.key.keysym.sym == SDLK_DOWN ) GererMarios[ 0 ].bas = true;
             else if( event.key.keysym.sym == SDLK_RETURN ) GererMarios[ 0 ].tirer = true;
             else if( event.key.keysym.sym == SDLK_DELETE ) lesMarios[ 0 ].RetourCheckPoint();
             else if( event.key.keysym.sym == SDLK_q ) GererMarios[ 1 ].gauche = true;
             else if( event.key.keysym.sym == SDLK_d ) GererMarios[ 1 ].droite = true;
             else if( event.key.keysym.sym == SDLK_z ) GererMarios[ 1 ].haut = true;
             else if( event.key.keysym.sym == SDLK_s ) GererMarios[ 1 ].bas = true;
             else if( event.key.keysym.sym == SDLK_SPACE ) GererMarios[ 1 ].tirer = true;
             else if( event.key.keysym.sym == SDLK_a ) lesMarios[ 1 ].RetourCheckPoint();
            
             break;
        case SDL_KEYUP:

             /* POUR 2 JOUEURS */
            
             if( event.key.keysym.sym == SDLK_LEFT ) GererMarios[ 0 ].gauche = false;
             else if( event.key.keysym.sym == SDLK_RIGHT ) GererMarios[ 0 ].droite = false;
             else if( event.key.keysym.sym == SDLK_UP ) GererMarios[ 0 ].haut = false;
             else if( event.key.keysym.sym == SDLK_DOWN ) GererMarios[ 0 ].bas = false;
             else if( event.key.keysym.sym == SDLK_RETURN ) GererMarios[ 0 ].tirer = false;
             else if( event.key.keysym.sym == SDLK_q ) GererMarios[ 1 ].gauche = false;
             else if( event.key.keysym.sym == SDLK_d ) GererMarios[ 1 ].droite = false;
             else if( event.key.keysym.sym == SDLK_z ) GererMarios[ 1 ].haut = false;
             else if( event.key.keysym.sym == SDLK_s ) GererMarios[ 1 ].bas = false;
             else if( event.key.keysym.sym == SDLK_SPACE ) GererMarios[ 1 ].tirer = false;
            
             break;
        default:
             break;
    }
}

J'espère ne pas mettre trompé dans la fonction, mais normalement celà devrait marcher correctement...

Sur ce au revoir et merci pour vos commentaires.

Commentaire de SAKingdom le 08/02/2008 23:59:56

else if
else if
else if
....

Dans ce cas si, switch case génèrera un code plus optimisé.

Commentaire de cali70 le 10/02/2008 10:36:34 10/10

Excellent, quelques éléments à revoir comme cité plus haut mais j'admire le travail!
Ca me rappelle mon enfance ^^

Commentaire de ndubien le 14/02/2008 14:52:42

Merci pour le 10 ;)

Salut Sakingdom,

le switch est-il vraiment plus rapide que:
if
else if
else if
...
?

Si oui, il est vrai qu'il serait mieux de l'utiliser...

Merci.
A bientôt...

Commentaire de angel2880 le 15/02/2008 10:14:32 6/10

beau travail. j'ai des commentaires à faire sur le jeur pas son implémentation ^^. Est ce qu'il serait possible d'ajouter une commande pour faire courir Mario ??

Commentaire de ndubien le 15/02/2008 19:39:51

oui, je pense qu'il serait possible d'ajouter une telle commande sans beaucoup de problèmes.
A+

Commentaire de SAKingdom le 15/02/2008 21:57:44

Oui sera plus rapide dans ce cas ci.

Quand une variable peut avoir beaucoup de valeurs et qu'il faille les tester pour exécuter le bout de code en conséquence, le switch case devient obligatoire tant pour la lisibilité du code que pour sa vitesse d'exécution.

Génère un listing d'un code avec une série de else if et un autre avec un switch case. Tu verras bien la différence.

Commentaire de networe le 24/02/2008 19:15:48

Je recois l'érreur:
Cannot find -ISDL_Mixer
Que faire?

Commentaire de Mal_au_DOS le 29/03/2008 19:43:49

Salut !
Excellent ce programme la source et ultra-commentée et l'orienté objet est plus facile à comprendre par quelqu'un d'autre. Je vais donc l'étudier attentivement.

Commentaire de ndubien le 15/04/2008 12:01:52

Merci pour le commentaire, MAL_AU_DOS

Commentaire de ndubien le 16/04/2008 11:01:52

Bonjour,

J'ai une question:
Pourquoi mon Mario ne fonctionne t'il pas sur mon Windows Vista (il le fait redémarrer...)?
Si quelqu'un a une idée merci de me la transmettre.

Sur ce, au revoir...

Commentaire de maroxe le 04/08/2008 01:22:36

je crois que nous deux projet se ressemble, sauf que lemien est en C++ (j'utilise la sfml et fmod): http://www.cppfrance.com/codes/MANGA-FNATIAISIE-MARIO-LIKE_47390.aspx

Commentaire de MADHK32 le 27/08/2009 01:01:53

bonjour je possede mac os x mais j ne peux pas executer le .exe avez vous une solution ?

Commentaire de MADHK32 le 27/08/2009 01:10:46

Bonjour, étant retourner sur mon pc win comment executer un fichier .ex_ ?

Commentaire de ndubien le 27/08/2009 22:58:27

Il vous suffit, de changer le ".ex_" en ".exe".

Commentaire de MADHK32 le 28/08/2009 04:13:27

C'est ce que j'ai fait et quand je lance le .exe; ecran bleu sous vista. As-tu une solution ?

Commentaire de ndubien le 28/08/2009 17:28:29

De mémoire: le problème vient du fait que SDL n'est pas intégralement compatible avec Windows Vista... Désolé !

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Jeu mario avec SDL (problème) [ par dmontavon ] bonjour, je suis en train de fair un super mario avec SDL... J'en suis qu'au d&#233;but, j'ai d&#233;ja r&#233;ussi &#224; le faire&nbsp;avancer &#224 Librairie SDL ==> SDL_Mixer [ par Marceleeuuh ] Salut ter tous, petite question sur la librairie SDL. Comment lire un son grace &#224; SDL_Mixer????? Pas moyen de trouver un exemple simple sur le n Deplacement Mario [ par CaptainChoc ] Bonjour, voil&#224; j'aurai besoin de vos conseils sur le comment faire le saut d'un jeu (comme mario) : vous savez, quand on appui un petit coup ca s createprocess [ par JCShaolan ] Bonjour tout le monde, je d&#233;veloppe actuellement une application (jeu d'&#233;chec) avec une librairie qui s'appelle SDL. Et en fait, lorsqu'une [SDL] Alternation d'une image [ par hoxid ] Salut !Bon voila j'ai un probleme avec SDL :je veux par exemple faire un gars qui marche (image "bonome.bmp") et que cette image se change en "bonomeq [SDL] Defilement de l'ecran [ par hoxid ] Ben voila je voulais savoir comment faire defiler l'ecran, avec SDL.J'y arrive, mais quand le perso arrive au milieu, il bloque. De plus, quand il va [SDL/WxWidgets] Events [ par djardjar ] Bonjour ! Comment on gere les &#233;venements de la SDL dans une fen&#234;tre WxWidgets ?En fait, je voudrais placer ceci dans une fen&#234;tre WxWid [SDL] Obtenir la couleur d'un pixel dans une SDL_Surface [ par Rouliann ] Bonjour tout le monde!Voil&#224; je cherche une fonction capable de lire la couleur d'un pixel dans une SDL_Surface, j'ai cherch&#233; dans SDL_video. SDL en statique [ par shenron666 ] Bonjour, je ne suis pas particuli&#232;rement fan des librairies "externes" (.dll) mais SDL &#233;tant une bonne librairie en open source j'aimerai sa SDL : linker error [ par bigben89 ] Ca fais &#224; peine quelques mois que j'fais de la programmation (en C) et j'aimerais faire un peu de 2d et de 3d avec SDL. Je regarde des tutoriaux


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,604 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales