summaryrefslogtreecommitdiffstats
path: root/Robofactor/Robofactor.pde
diff options
context:
space:
mode:
authorSticmac <jujulem06@hotmail.fr>2015-05-05 21:51:40 +0200
committerSticmac <jujulem06@hotmail.fr>2015-05-05 21:51:40 +0200
commitbf359cf55f492a997b44ac689b26b16f75768372 (patch)
tree7fdfcafff4dd032f6ffc4f3f7a12a46ded1025fb /Robofactor/Robofactor.pde
downloadRobofactor-Processing-theremin.tar.gz
Robofactor-Processing-theremin.tar.bz2
Robofactor-Processing-theremin.tar.xz
Robofactor-Processing-theremin.zip
Diffstat (limited to 'Robofactor/Robofactor.pde')
-rw-r--r--Robofactor/Robofactor.pde159
1 files changed, 159 insertions, 0 deletions
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;
+}
+