Jeu Mario Gusta Main

Activité proposé à des collégiens pour leur orientation sur un créneau de 1h30.

Contexte :

La création de jeu vidéo peut ce faire en utilisant des bibliothèque de jeux sous Processing, alors commençons par un jeu bien connu Super Mario.

Quand nous aurons terminé, nous aurons un jeu avec des koopa, des plates-formes que nous pouvons traverser sans tomber, un trou avec de terribles usines de muncher, des pièces de monnaie, y compris une mystérieuse pièce de dragon, une balle Banzai qui sort de nulle part.

Matériel nécessaire :

  • Logiciel Processing ou notepad ++
  • Archive Jeu.7z

Pour Commencer ?

  1. Décompresser l’archive Jeu.7z
  2. Ouvrir le fichier «Mario.pde».
  3. Chercher dans les onglets en haut l’onglet portant le nom de «layers_mainlayers», cette dans cette onglets que vous aller paramétrer le jeu.

Du sol et des collines pour Mario ?

Afin de faire bouger le personnage de mario, il lui est nécessaire d’avoir un sol sous ses pieds pour cela nous allons le lui en donner un.

Du sol pour Mario ?

  1. Avec l’écriture des lignes suivantes dans la partie :

void addplateform() {

Code à ajouter :

addGround(« ground », -32,height-48, width + 32,height);

addGround(« ground », -32,height-48, -32 + gap*32,height);

addBoundary(new Boundary(-31 + gap32,height,-31 + gap32,height-47));

addGround(« ground », -31 + gap*32,height-48, width+32,height);

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

  1. Ajouter la création de buisson avec la ligne dans la partie :

void addplateform() {

Code à ajouter :

addBushes();

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

I. 2.      Des collines pour Mario ?

a)    Collines inclinés

  1. Avec l’écriture des lignes suivantes dans la partie :

void addplateform() {

Code à ajouter :

addSlant(256, height-48);

addSlant(1300, height-48);

addSlant(1350, height-48);

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

b)   Collines droite

  1. Avec l’écriture des lignes suivantes dans la partie :

void addplateform() {

Code à ajouter :

addGroundPlatform(« ground », 928, height-224, 96, 112);

addGroundPlatform(« ground », 920, height-176, 32, 64);

addGroundPlatform(« ground », 912, height-128, 128, 80);

addGroundPlatform(« ground », 976, height-96, 128, 48);

addGroundPlatform(« ground », 1442, height-128, 128, 80);

addGroundPlatform(« ground », 1442+64, height-96, 128, 48);

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

I. 3.      Marcher dans le Ciel

  1. Avec l’écriture des lignes suivantes dans la partie :

void addplateform() {

Code à ajouter :

for(int i=0; i<24; i++) {addBoundedInteractor(new SkyBlock(width-23.516+i16,96));}

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

II.   Quelques pièces, champignon et clés pour Mario

II. 1.    Un champion pour grandir

Mario souhaite grandir il faut pour cela implémenter un triggers pour le faire grandir.

  1. Avec l’écriture des lignes suivantes dans la partie :

void addTriggers() {

Code à ajouter sous le sol:

addTrigger(new MushroomTrigger(148,370,5,12, 406,373.9, 2, 0));

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

II. 2.    Implémentation d’une clés

Mario souhaite grandir il faut pour cela implémenter un triggers pour le faire grandir.

  1. Avec l’écriture des lignes suivantes dans la partie :

void addTriggers() {

Code à ajouter sous le sol:

addForPlayerOnly(new KeyPickup(2000,364));

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

II. 3.    Quelques pièces

Mario à besoin de pièce pour vivre. Il existe deux type de pièce dans l’univers de Super Mario, les pièce de type Coin et les pièce de type Dragon, ces dernières sont beaucoup plus rare.

a)    Pièce Coins

  1. Avec l’écriture des lignes suivantes dans la partie :

void addcoin() {

Code à ajouter :

addCoins(928,height-236,96);

addCoins(912,height-140,128);

addCoins(976,height-108,128);

addCoins(1442,height-140,128);

addCoins(1442+64,height-108,128);

for(int i=0; i<7; i++) {            addBoundedInteractor(new CoinBlock(1158+i*16,height-128));}

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

b)   Piece Dragon

  1. Avec l’écriture des lignes suivantes dans la partie :

void addcoin(){

Code à ajouter :

addForPlayerOnly(new DragonCoin(352,height-164));

addForPlayerOnly(new DragonCoin(935,height-200));

addForPlayerOnly(new DragonCoin(1442+160,height-140));

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

III.                Quel boite mystère ?

Il existe dans super Mario des boites mystérieuses, sur les quel Mario doit sauté dessous.

  1. Avec l’écriture des lignes suivantes dans la partie :

void addmystery() {

Code à ajouter sous le sol:

for(int i=0; i<7; i++) {addBoundedInteractor(new CoinBlock(1158+i*16,height-128)); }

    addBoundedInteractor(new CoinBlock(960,height-280));

    addBoundedInteractor(new MushroomBlock(976,height-280));

    addBoundedInteractor(new CoinBlock(992,height-280));

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

IV.               Quelques tubes de transport

Il existe dans super Mario des tubes permettant d’aller d’une zone à une autre.

  1. Avec l’écriture des lignes suivantes dans la partie :

void addTubes() {

Code à ajouter sous le sol:

addTube(660,height-48, new LayerTeleportTrigger(« background layer »,  304+16,height/0.75-116));

addTube(804,height-48, null);

    addTube(1940,height-48, new TeleportTrigger(2020+16,32));

    addTube(width-8-23.5*16,88,  new LevelTeleportTrigger(« Dark Level »,  2020+6,height-65,16,1,  16, height-32));

    addUpsideDownTube(2020,0);

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu : 

V.  Et pour finir quelques ennemis

Il existe dans super Mario des tubes permettant d’aller d’une zone à une autre.

V. 1.    Koopa

  1. Avec l’écriture des lignes suivantes dans la partie :

void addenemies() {

Code à ajouter sous le sol:

Koopa koopa = new Koopa(264, height-178);

addInteractor(koopa);

addTrigger(new KoopaTrigger(412,0,5,height, 350, height-64, -0.2, 0));

addTrigger(new KoopaTrigger(562,0,5,height, 350, height-64, -0.2, 0));

addTrigger(new KoopaTrigger(916,0,5,height, 350, height-64, -0.2, 0));

addTrigger(new BanzaiBillTrigger(1446,310,5,74, 400, height-95, -6, 0));

for(int i=0; i<4; i++) { addBoundedInteractor(new Muncher(-32 + (gap32) + 8 + (16i),height-8)); }

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

V. 2.    BanzaiBill

  1. Avec l’écriture des lignes suivantes dans la partie :

void addenemies() {

Code à ajouter sous le sol:

addTrigger(new BanzaiBillTrigger(1446,310,5,74, 400, height-95, -6, 0));

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

V. 3.    Muncher

  1. Avec l’écriture des lignes suivantes dans la partie :

void addenemies() {

Code à ajouter sous le sol:

for(int i=0; i<4; i++) { addBoundedInteractor(new Muncher(-32 + (gap32) + 8 + (16i),height-8)); }

  1. Tester la bonne implémentation en lançant l’Exécution

Resultat attendu :

Ressources

Sources : des images et du code sources sur processingjs.nihongoresources.com/

http://web-gb.pagesperso-orange.fr/mario/Jeu-Mario.html