From bf359cf55f492a997b44ac689b26b16f75768372 Mon Sep 17 00:00:00 2001 From: Sticmac Date: Tue, 5 May 2015 21:51:40 +0200 Subject: Original commit --- Robofactor/Boite.pde | 23 ++++++ Robofactor/Boiteverte.pde | 7 ++ Robofactor/Car.png | Bin 0 -> 942 bytes Robofactor/Carf.png | Bin 0 -> 15771 bytes Robofactor/Ennemi.pde | 16 +++++ Robofactor/Entite.pde | 56 +++++++++++++++ Robofactor/Hero.pde | 27 +++++++ Robofactor/Letterbox.png | Bin 0 -> 279 bytes Robofactor/Letterbox2.png | Bin 0 -> 15088 bytes Robofactor/LetterboxGreen.png | Bin 0 -> 15527 bytes Robofactor/LetterboxGreen2.png | Bin 0 -> 15524 bytes Robofactor/Robofactor.pde | 159 +++++++++++++++++++++++++++++++++++++++++ Robofactor/Robofactor.zip | Bin 0 -> 54212 bytes Robofactor/RobofactorProv.PNG | Bin 0 -> 1168 bytes Robofactor/Score.pde | 19 +++++ Robofactor/Untitled-f1.png | Bin 0 -> 4446 bytes Robofactor/Voiture.pde | 20 ++++++ Robofactor/city.jpg | Bin 0 -> 7703 bytes Robofactor/fond.png | Bin 0 -> 131880 bytes Robofactor/fond1.png | Bin 0 -> 117359 bytes Robofactor/jggj.png | Bin 0 -> 7127 bytes Robofactor/sketch.properties | 2 + Robofactor/titlerobofactor.png | Bin 0 -> 97817 bytes 23 files changed, 329 insertions(+) create mode 100644 Robofactor/Boite.pde create mode 100644 Robofactor/Boiteverte.pde create mode 100644 Robofactor/Car.png create mode 100644 Robofactor/Carf.png create mode 100644 Robofactor/Ennemi.pde create mode 100644 Robofactor/Entite.pde create mode 100644 Robofactor/Hero.pde create mode 100644 Robofactor/Letterbox.png create mode 100644 Robofactor/Letterbox2.png create mode 100644 Robofactor/LetterboxGreen.png create mode 100644 Robofactor/LetterboxGreen2.png create mode 100644 Robofactor/Robofactor.pde create mode 100644 Robofactor/Robofactor.zip create mode 100644 Robofactor/RobofactorProv.PNG create mode 100644 Robofactor/Score.pde create mode 100644 Robofactor/Untitled-f1.png create mode 100644 Robofactor/Voiture.pde create mode 100644 Robofactor/city.jpg create mode 100644 Robofactor/fond.png create mode 100644 Robofactor/fond1.png create mode 100644 Robofactor/jggj.png create mode 100644 Robofactor/sketch.properties create mode 100644 Robofactor/titlerobofactor.png diff --git a/Robofactor/Boite.pde b/Robofactor/Boite.pde new file mode 100644 index 0000000..c6fcfaa --- /dev/null +++ b/Robofactor/Boite.pde @@ -0,0 +1,23 @@ +public class Boite extends Entite{ + + //variables + + //fct + Boite(int startRangee, int xDepart, int startVitesse){ + rangee = startRangee; + x = xDepart; + xBloc = xDepart; + vitesse = startVitesse; + } + + void afficher(){ + image (avatar, x,(100+200*rangee)-(avatar.height/2)); + } + + void collision(Heros heros, Score score) { + if (this.getx()-85 <= heros.getx() && this.getx()+avatar.width>=heros.getx() && this.getRangee() == heros.getRangee()){ + x = -200; + score.augmenter(10); + } + } +} diff --git a/Robofactor/Boiteverte.pde b/Robofactor/Boiteverte.pde new file mode 100644 index 0000000..afeb840 --- /dev/null +++ b/Robofactor/Boiteverte.pde @@ -0,0 +1,7 @@ +public class Boiteverte extends Boite{ + + Boiteverte (int startRangee, int xDepart, int startVitesse){ + super(startRangee, xDepart, startVitesse); + avatar = loadImage("LetterboxGreen2.png"); + } +} diff --git a/Robofactor/Car.png b/Robofactor/Car.png new file mode 100644 index 0000000..1e6a850 Binary files /dev/null and b/Robofactor/Car.png differ diff --git a/Robofactor/Carf.png b/Robofactor/Carf.png new file mode 100644 index 0000000..3dfa25a Binary files /dev/null and b/Robofactor/Carf.png differ diff --git a/Robofactor/Ennemi.pde b/Robofactor/Ennemi.pde new file mode 100644 index 0000000..dfb2a0e --- /dev/null +++ b/Robofactor/Ennemi.pde @@ -0,0 +1,16 @@ +abstract class Ennemi extends Entite{ //Un ennemi est une entité. Donc Ennemi hérite de Entité. + + //variables + + //fonctions + Ennemi(int startRangee, int xDepart){ + rangee = startRangee; + x = xDepart; + xBloc = xDepart; + } + + void afficher(){ + image (avatar, x, y); + } + +} diff --git a/Robofactor/Entite.pde b/Robofactor/Entite.pde new file mode 100644 index 0000000..d0244d3 --- /dev/null +++ b/Robofactor/Entite.pde @@ -0,0 +1,56 @@ +abstract class Entite { + protected int rangee; //"Protected" signifie que les classes héritant de Entité auront accès à cette variable ! + protected PImage avatar; + protected int x, xBloc, y; + protected int vitesse; + protected boolean isDead = false; + + void deplacerY(int diff){ //toutes les entités se déplaceront sur les trois rangées. + rangee+=diff; + + if(isDead == false && rangee>=2){ + rangee = 2; + } + + else if(isDead == false && rangee<=0){ + rangee = 0; + } + + else if(isDead == true){ + rangee = 3; + } + } + + void deplacerYProgressif() { //cette fonction ne s'appliquera qu'à roboFactor, elle permet un déplacement progressif de ce dernier, d'une rangée à l'autre. + if (y<(100+200*rangee)-(avatar.height/2)) { + y+=20; + } + else if (y>(100+200*rangee)-(avatar.height/2)) { + y-=20; + } + } + + void deplacerX(){ + x-=vitesse; + + if(x<=-200){ + x=-200; + } + } + + int getx(){ + return x; + } + + int gety(){ + return y; + } + + int getRangee(){ + return rangee; + } + + PImage getAvatar(){ + return avatar; + } +} diff --git a/Robofactor/Hero.pde b/Robofactor/Hero.pde new file mode 100644 index 0000000..8acb3af --- /dev/null +++ b/Robofactor/Hero.pde @@ -0,0 +1,27 @@ +public class Heros extends Entite{ + //Les variables + + //Les fonctions + Heros (int rangeeStart, PImage imageStart) { //Cette fonction est le constructeur de la classe Hero, elle attribue à Hero une rangée de départ et une image de départ. + rangee = rangeeStart; + avatar = imageStart; + y = (100+200*rangee)-(avatar.height/2); + } + + void afficher () { + image (img, 50, y); + } + + void setIsDead (boolean dead) { //Change la valeur de isDead quand la fonction est appelée. + isDead = dead; + } + + void mourir(){ + if(y>=height){ + noLoop(); + fill(0); + text("Robofactor est mort. Appuyez sur o.", width/2-75, height/2); + } + } +} + diff --git a/Robofactor/Letterbox.png b/Robofactor/Letterbox.png new file mode 100644 index 0000000..d036899 Binary files /dev/null and b/Robofactor/Letterbox.png differ diff --git a/Robofactor/Letterbox2.png b/Robofactor/Letterbox2.png new file mode 100644 index 0000000..b4c305a Binary files /dev/null and b/Robofactor/Letterbox2.png differ diff --git a/Robofactor/LetterboxGreen.png b/Robofactor/LetterboxGreen.png new file mode 100644 index 0000000..96f9478 Binary files /dev/null and b/Robofactor/LetterboxGreen.png differ diff --git a/Robofactor/LetterboxGreen2.png b/Robofactor/LetterboxGreen2.png new file mode 100644 index 0000000..1a3bee8 Binary files /dev/null and b/Robofactor/LetterboxGreen2.png differ diff --git a/Robofactor/Robofactor.pde b/Robofactor/Robofactor.pde new file mode 100644 index 0000000..e1e7ca5 --- /dev/null +++ b/Robofactor/Robofactor.pde @@ -0,0 +1,159 @@ +Heros roboFactor; +Voiture[] voiture = new Voiture[3]; +Boite[] boite = new Boite[2]; +Score score; +PImage img; +PImage backG; +boolean lance; +PImage backMenu; + +float xDecor, xDecorFin; + +int xBlocage = -200; //Les entités se bloquent à une abscisse de -200, en attendant d'être rappellées. +int opacite; + +void setup () { + + size (1000, 600); + + backMenu = loadImage ("titlerobofactor.png"); + img = loadImage("RobofactorProv.PNG"); + backG = loadImage ("fond.png"); + roboFactor = new Heros(1, img); + score = new Score(); + lance = false; + + xDecor = 0; + + initialiserVoiture(voiture); + + initialiserBoite(boite); +} + +void draw () { + if (lance == false) { + noLoop(); + background (0, 0, 0); + image (backMenu, 200, 10); + fill(255); + text("Appuyez sur o pour démarrer", width/2-75, height/2); + } + else { + background (80, 120, 200); + image(backG, xDecor, 0); + roboFactor.afficher(); + roboFactor.mourir(); //On vérifie si Robofactor est mort, s'il l'est, on le fait tomber hors de l'écran. + nouvelleEntite(voiture, boite); //On génère une nouvelle voiture ou une nouvelle boite aux lettres.. + roboFactor.deplacerYProgressif(); //Animation du déplacement de Robofactor vers une autre rangée + + //On déplace et on affiche les voitures et les boites + gererBoite(boite); + gererVoiture(voiture); + + //Le décor défile + xDecor = defiler(xDecor, xDecorFin); + xDecorFin = xDecor + backG.width; + + gererCollision(voiture, boite); + score.afficher(50, 50); + } +} + +void keyPressed() { //Cette fonction gere toutes les touches utiles, haut pour aller vers le haut, bas pour aller vers le bas etc... + if (keyCode==UP) { + roboFactor.deplacerY(-1); //Robofactor va en haut si on appuie sur la flèche du haut + } + if (keyCode==DOWN) { + roboFactor.deplacerY(1); //Robofactor va en bas si on appuie sur la flèche du bas + } + if (key=='o') { + lance = true; + + initialiserVoiture(voiture); + + initialiserBoite(boite); + + score = new Score(); + + xDecor = 0; + + roboFactor = new Heros(1, img); + loop(); + } +} + +void initialiserVoiture(Voiture[] tab) { + for (int i = 0 ; i < tab.length ; i++) { + tab[i] = new Voiture ((int)random(-1, 3), xBlocage, generer(25, 30)); + } +} + +void initialiserBoite(Boite[] tab) { + for (int i = 0 ; i < tab.length ; i++) { + tab[i] = new Boiteverte((int)random(-1, 3), xBlocage, 12); + } +} + +void nouvelleEntite(Voiture tabVoit[], Boite[] tabBoite) { + int generation; + generation = generer(0, 100); //On génère un nombre aléatoirement entre 0 et 150 (entre -1 et 151 non compris). + + if (generation==0) { //Si on tombe sur 0, on "remet en jeu" une des trois voitures (il faut qu'elle soit bloquée en dehors de la fenêtre), à une rangée aléatoire + for (int i = 0 ; i < tabVoit.length ; i++) { + generation = generer(0, 2); + if (tabVoit[i].getx()==xBlocage && i==generation) { + tabVoit[i] = new Voiture ((int)random(0, 3), width+50, generer(25, 30)); + } + } + } + + if (generation==1) { //Si on tombe sur 1, on "remet en jeu" une des deux boites (il faut qu'elle soit bloquée), à une rangée aléatoire + for (int i = 0 ; i < tabBoite.length ; i++) { + generation = generer(0, 1); + if (tabBoite[i].getx()==xBlocage && i == generation) { + tabBoite[i] = new Boiteverte ((int)random(0, 3), width+50, 12); + } + } + } +} + +void gererBoite(Boite[] tab) { //On affiche et on déplace la boite + for (int i = 0 ; i < tab.length ; i++) { + tab[i].afficher(); + tab[i].deplacerX(); + } +} + +void gererVoiture(Voiture[] tab) { //On affiche et on déplace la voiture + for (int i = 0 ; i < tab.length ; i++) { + tab[i].afficher(); + tab[i].deplacerX(); + } +} + +void gererCollision(Voiture[] tabVoit, Boite[] tabBoite) { + for (int i = 0 ; i < tabVoit.length ; i++) { + tabVoit[i].collision(roboFactor); + } + + for (int i = 0 ; i < tabBoite.length ; i++) { + tabBoite[i].collision(roboFactor, score); + } +} + +int generer(int debut, int fin) { + int aleatoire; + aleatoire = (int)random(debut, fin+1); + return aleatoire; +} + +float defiler(float x, float xfin) { + x-=12; + + if (xfin <= width) { + x = 0; + } + + return x; +} + diff --git a/Robofactor/Robofactor.zip b/Robofactor/Robofactor.zip new file mode 100644 index 0000000..3959e3a Binary files /dev/null and b/Robofactor/Robofactor.zip differ diff --git a/Robofactor/RobofactorProv.PNG b/Robofactor/RobofactorProv.PNG new file mode 100644 index 0000000..1b5faad Binary files /dev/null and b/Robofactor/RobofactorProv.PNG differ diff --git a/Robofactor/Score.pde b/Robofactor/Score.pde new file mode 100644 index 0000000..4e9be74 --- /dev/null +++ b/Robofactor/Score.pde @@ -0,0 +1,19 @@ +public class Score{ + //Variables + private int score; + + //Fonctions + Score(){ + score = 0; + } + + void augmenter(int augmentation){ + score+=augmentation; + } + + void afficher(int x, int y){ + fill(0); + text(score, x, y); + } +} + diff --git a/Robofactor/Untitled-f1.png b/Robofactor/Untitled-f1.png new file mode 100644 index 0000000..10bb218 Binary files /dev/null and b/Robofactor/Untitled-f1.png differ diff --git a/Robofactor/Voiture.pde b/Robofactor/Voiture.pde new file mode 100644 index 0000000..fb280e3 --- /dev/null +++ b/Robofactor/Voiture.pde @@ -0,0 +1,20 @@ +public class Voiture extends Ennemi{ + //variables + Voiture(int startRangee, int xDepart, int vitesseDepart){ + super(startRangee, xDepart); + avatar = loadImage("Carf.png"); + vitesse = vitesseDepart; + y = (100+200*rangee)-(avatar.height/2); + } + //fonctions + + void collision(Heros heros){ + + if(x <= heros.getx()+heros.getAvatar().width && x>=0){ + if(y >= heros.gety() && y <= heros.gety()+heros.getAvatar().height){ + heros.setIsDead(true); + heros.deplacerY(3); + } + } + } +} diff --git a/Robofactor/city.jpg b/Robofactor/city.jpg new file mode 100644 index 0000000..b95c6f0 Binary files /dev/null and b/Robofactor/city.jpg differ diff --git a/Robofactor/fond.png b/Robofactor/fond.png new file mode 100644 index 0000000..398b1c8 Binary files /dev/null and b/Robofactor/fond.png differ diff --git a/Robofactor/fond1.png b/Robofactor/fond1.png new file mode 100644 index 0000000..0427646 Binary files /dev/null and b/Robofactor/fond1.png differ diff --git a/Robofactor/jggj.png b/Robofactor/jggj.png new file mode 100644 index 0000000..2feb405 Binary files /dev/null and b/Robofactor/jggj.png differ diff --git a/Robofactor/sketch.properties b/Robofactor/sketch.properties new file mode 100644 index 0000000..09d6f35 --- /dev/null +++ b/Robofactor/sketch.properties @@ -0,0 +1,2 @@ +mode.id=processing.mode.java.JavaMode +mode=Java diff --git a/Robofactor/titlerobofactor.png b/Robofactor/titlerobofactor.png new file mode 100644 index 0000000..efdbac0 Binary files /dev/null and b/Robofactor/titlerobofactor.png differ -- cgit v1.2.3-54-g00ecf