begin process at 2012 02 09 14:03:12
  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é :11 491 / 1 146

Auteur : ndubien

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (21)
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 LANCÉ D'OBJETS
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

Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79
Source avec Zip AUTRE GRILLE DE SUDOKU par Eneur
Source avec Zip Source avec une capture SOKOBAN EN C POUR DÉBUTANT (VERSION AMÉLIORÉE BASÉE SUR LE T... par eustatika

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
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é !

Commentaire de ufukendu59 le 10/04/2010 22:25:59

Tu te complique pour rien ...

 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 Problème avec la gestion d'évenement en SDL (à mon avis) [ par SirThanos ] Bonjour, Ca fait un petit moment que je n'avance plus dans mon code car j'ai un probléme, à mon avis, venant du SDL_EVENT. Je suis en train de faire affichage sdl [ par korin221 ] Bonjour! Je réaliser un jeu de UNO en C. J'ai un probleme lors du chargement de la main d'un joueur, soit les 7 cartes. J'affiche mes 7 cartes mais il sdl_showcursor [ par Shirubaino ] Bonjour, Travaillant actuellement sur un projet de groupe en C++, nous avons décider d'utiliser SDL pour le graphique (on fait un bomberman). Cependa SDL et les threads [ par Shirubaino ] Bonjour. Dans le cadre d'un jeux nécessitant la pause de plusieurs bombes en même temps (et ainsi leur explosion a un interval précis), et pour gére Problème pour calculer le H pour l'A star ( * ) [ par jedinos ] Bonjour à tous ! [url=http://www.siteduzero.com/tutoriel-3-34333-le-pathfinding-avec-a.html]Dans ce tuto du pathfinding A star[/url] , l'auteur ne no Master mind (SDL et OpenGl) [ par mehdighar ] Bonjour !! Bon je dois créer un mastermind en mode graphique et j'ai un probleme au niveau de la gestion de la souris !! jvoudrai comparer le clic a d SDL multiplatforme [ par Hagen1374 ] Bonjour, Je sais pas trop si je poste sur le bon forum mais bon je ne savais pas trop où mettre mon sujet. J'ai fais un projet avec la SDL sous wind Problème avec la gestion d'évenement en SDL (à mon avis) [ par OA88 ] salut, je suis lancé dans la programmation du jeu motus en C en utilisaant SDL comme biblio graphique je trouve probléme dans la gestion du touche SDL Compiler un programme écrit en C++ utilisant une bibliothèque C. Erreurs... [ par Virus721 ] Bonjour tout le monde ! :) Voila j'essaye de me coder un petit jeu avec la bibliothèque SDL 1.2 et l'aide du site du zéro. J'essaye autant que possib


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,998 sec (4)

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