diff options
23 files changed, 329 insertions, 0 deletions
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 Binary files differnew file mode 100644 index 0000000..1e6a850 --- /dev/null +++ b/Robofactor/Car.png diff --git a/Robofactor/Carf.png b/Robofactor/Carf.png Binary files differnew file mode 100644 index 0000000..3dfa25a --- /dev/null +++ b/Robofactor/Carf.png 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 Binary files differnew file mode 100644 index 0000000..d036899 --- /dev/null +++ b/Robofactor/Letterbox.png diff --git a/Robofactor/Letterbox2.png b/Robofactor/Letterbox2.png Binary files differnew file mode 100644 index 0000000..b4c305a --- /dev/null +++ b/Robofactor/Letterbox2.png diff --git a/Robofactor/LetterboxGreen.png b/Robofactor/LetterboxGreen.png Binary files differnew file mode 100644 index 0000000..96f9478 --- /dev/null +++ b/Robofactor/LetterboxGreen.png diff --git a/Robofactor/LetterboxGreen2.png b/Robofactor/LetterboxGreen2.png Binary files differnew file mode 100644 index 0000000..1a3bee8 --- /dev/null +++ b/Robofactor/LetterboxGreen2.png 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 Binary files differnew file mode 100644 index 0000000..3959e3a --- /dev/null +++ b/Robofactor/Robofactor.zip diff --git a/Robofactor/RobofactorProv.PNG b/Robofactor/RobofactorProv.PNG Binary files differnew file mode 100644 index 0000000..1b5faad --- /dev/null +++ b/Robofactor/RobofactorProv.PNG 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 Binary files differnew file mode 100644 index 0000000..10bb218 --- /dev/null +++ b/Robofactor/Untitled-f1.png 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 Binary files differnew file mode 100644 index 0000000..b95c6f0 --- /dev/null +++ b/Robofactor/city.jpg diff --git a/Robofactor/fond.png b/Robofactor/fond.png Binary files differnew file mode 100644 index 0000000..398b1c8 --- /dev/null +++ b/Robofactor/fond.png diff --git a/Robofactor/fond1.png b/Robofactor/fond1.png Binary files differnew file mode 100644 index 0000000..0427646 --- /dev/null +++ b/Robofactor/fond1.png diff --git a/Robofactor/jggj.png b/Robofactor/jggj.png Binary files differnew file mode 100644 index 0000000..2feb405 --- /dev/null +++ b/Robofactor/jggj.png 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 Binary files differnew file mode 100644 index 0000000..efdbac0 --- /dev/null +++ b/Robofactor/titlerobofactor.png |