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 ?
- Décompresser l’archive Jeu.7z
- Ouvrir le fichier «Mario.pde».
- 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 ?
- 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);
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
- Ajouter la création de buisson avec la ligne dans la partie :
void addplateform() {
Code à ajouter :
addBushes();
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
I. 2. Des collines pour Mario ?
a) Collines inclinés
- 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);
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
b) Collines droite
- 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);
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
I. 3. Marcher dans le Ciel
- 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));}
- 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.
- 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));
- 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.
- Avec l’écriture des lignes suivantes dans la partie :
void addTriggers() {
Code à ajouter sous le sol:
addForPlayerOnly(new KeyPickup(2000,364));
- 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
- 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));}
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
b) Piece Dragon
- 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));
- 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.
- 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));
- 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.
- 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);
- 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
- 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)); }
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
V. 2. BanzaiBill
- 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));
- Tester la bonne implémentation en lançant l’Exécution
Resultat attendu :
V. 3. Muncher
- 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)); }
- 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