/** * * */ /* @pjs preload="hall.png"; @pjs preload="attic.png"; @pjs preload="bath.png"; @pjs preload="bedroom.png"; @pjs preload="kitchen.png"; @pjs preload="living.png"; @pjs preload="libra.png"; @pjs preload="1.png"; @pjs preload="2.png"; @pjs preload="3.png"; @pjs preload="4.png"; @pjs preload="5.png"; @pjs preload="6.png"; @pjs preload="7.png"; @pjs preload="couteau.png"; @pjs preload="fixe.png"; @pjs preload="sc1.png"; @pjs preload="sc2.png"; @pjs preload="sc3.png"; @pjs preload="sc4.png"; @pjs preload="1g.png"; @pjs preload="2g.png"; @pjs preload="3g.png"; @pjs preload="4g.png"; @pjs preload="5g.png"; @pjs preload="6g.png"; @pjs preload="7g.png"; @pjs preload="t1.png"; @pjs preload="t2.png"; @pjs preload="t3.png"; @pjs preload="t4.png"; @pjs preload="t5.png"; @pjs preload="t6.png"; @pjs preload="t7.png"; @pjs preload="t8.png"; @pjs preload="mort1.png"; @pjs preload="fixeg.png"; @pjs font="Dolce Vita Light.ttf"; @pjs preload="mort1.png"; @pjs preload="mort2.png"; @pjs preload="end.png"; mov@pjs globalKeyEvents="true"; */ Video video; PImage frame; int videotime = 259; int sprite = 0; PFont myFont; int[] salles = new int[21]; int[] generationsalle = {1,2,3,4,5,6}; float n = 2.5; int xperso = 200; int yperso = 400; int xadv = 1200; int yadv = 400; int adv = 1; int vitesse = 5; int num = 0; boolean[] downKeys = new boolean[256]; float translationx = 0; float translationy = 0; int del = 0; int transi = 0; int transik = 0; int transixmax = 0; int transi2 = 0; int transik2 = 0; int transiymax = 0; int mort = int(random(2)); int xt1; int yt1; int xt2; int yt2; int tiacti = 0; int bug; void setup(){ myFont = loadFont("DolceVitaLight.vlw",48); size(1600,900); sc1 = loadImage("sc1.png"); sc2 = loadImage("sc2.png"); sc3 = loadImage("sc3.png"); sc4 = loadImage("sc4.png"); p1 = loadImage("1.png"); p2 = loadImage("2.png"); p3 = loadImage("3.png"); p4 = loadImage("4.png"); p5 = loadImage("5.png"); p6 = loadImage("6.png"); p7 = loadImage("7.png"); t1 = loadImage("t1.png"); t2 = loadImage("t2.png"); t3 = loadImage("t3.png"); t4 = loadImage("t4.png"); t5 = loadImage("t5.png"); t6 = loadImage("t6.png"); t7 = loadImage("t7.png"); t8 = loadImage("t8.png"); fixe = loadImage("fixe.png"); couteau = loadImage("couteau.png"); p1g = loadImage("1g.png"); p2g = loadImage("2g.png"); p3g = loadImage("3g.png"); p4g = loadImage("4g.png"); p5g = loadImage("5g.png"); p6g = loadImage("6g.png"); p7g = loadImage("7g.png"); fixeg = loadImage("fixeg.png"); mort1 = loadImage("mort1.png"); mort2 = loadImage("mort2.png"); hall = loadImage("hall.png"); attic = loadImage("attic.png"); bath = loadImage("bath.png"); bedroom = loadImage("bedroom.png"); kitchen = loadImage("kitchen.png"); living = loadImage("living.png"); libra = loadImage("libra.png"); end = loadImage("end.png"); frameRate(60); dessinerSalles(7); shuffle(generationsalle); xt1 = width-(width/2-width/n)-100; yt1 = height/2; xt2 = width/2; yt2 = height-(height/2-height/n)-70; } void draw(){ bug = int(random(400)); background(0); if(videotime>0){ noStroke(); videotime--; if ( video != null ) { background(255, 0); PImage frame = video.getFrame(); PImage rgbImage = frame.get(0,0,frame.width,frame.height); image( rgbImage,0, 0, width, height ); } } else{ if(tiacti == 0 || tiacti == 1){ image(t1,0,0,1600,900); } else{ if(transi == -2 || transi2 == -2){ if(num == 0) image(t2,0,0,1600,900); if(num == 1) image(t3,0,0,1600,900); if(num == 2) image(t4,0,0,1600,900); if(num == 3) image(t5,0,0,1600,900); if(num == 4) image(t6,0,0,1600,900); if(num == 5) image(t7,0,0,1600,900); } else{ if(num == 7 || num == 8){ if(num == 7) image(t8,0,0,1600,900); if(num == 8) image(end,0,0,1600,900); } else{ stroke(150,0,0); strokeWeight(10); pushMatrix(); translate(translationx,translationy); image(hall,salles[0*3],salles[0*3+1]); image(attic,salles[generationsalle[0]*3],salles[generationsalle[0]*3+1]); image(bath,salles[generationsalle[1]*3],salles[generationsalle[1]*3+1]); image(bedroom,salles[generationsalle[2]*3],salles[generationsalle[2]*3+1]); image(kitchen,salles[generationsalle[3]*3],salles[generationsalle[3]*3+1]); image(living,salles[generationsalle[4]*3],salles[generationsalle[4]*3+1]); image(libra,salles[generationsalle[5]*3],salles[generationsalle[5]*3+1]); fill(20,20,20,20); for(int i = 0; i<7; i++){ rect(salles[i*3],salles[i*3+1],width-((width/2-width/2.5)*2),height-((height/2-height/2.5)*2)); } popMatrix(); //Couleur contour /*fill(250,0,0,150); noStroke(); rect(0,0,width/2-width/n,height); rect(width/2-width/n,0,width,height/2-height/n); rect(width/2-width/n,height-(height/2-height/n),width,height/2-height/n); rect(width-(width/2-width/n),height/2-height/n,width/2-width/n,height-((height/2-height/n)*2)); */ //Fin couleur contour : Possibilité de le changer d'onglet après. if (adv == 1){ deplaadvsprite(); deplaadv(); } else{ if (mort == 0) image(mort1,xadv,yadv); if (mort == 1) image(mort2,xadv,yadv); } deplacement(); //Changement de salle fill(255); stroke(0); textFont(myFont); textSize(18); if (num == 6 && adv == 0) num++; if(num<6 && adv == 0){ if(salles[num*3+2]==0){ text("Next room",xt1,yt1); if(yperso+50 > (height/2)-20 && yperso+50 < (height/2)+20 && xperso+50>(width-(width/2-width/n))-100){ transi = 1; } } if (transi == 1){ xt1 = -1000; yt1 = -1000; xperso = -500; yperso = -500; xadv = -500; yadv = -500; transik-=4; translationx=transik; } if (transi == -1){ xperso = 200; yperso = 700; num++; transixmax++; adv =1; xadv = 1200; yadv = 700; mort = int(random(2)); transi = 0; xt1 = width-(width/2-width/n)-100; yt1 = height/2; } if (transik == -1280*(transixmax+1)) transi = -2; //deplacement y if(salles[num*3+2]==1){ text("Next room",xt2,yt2); if(xperso+50 > (width/2)-30 && xperso+50 < (width/2)+30 && yperso+50>(height-(height/2-height/n))-110){ transi2 = 1; } } if (transi2 == 1){ xt2 = -1000; yt2 = -1000; xperso = -500; yperso = -500; xadv = -500; yadv = -500; transik2-=4; translationy=transik2; } if(transi2 == -1){ xperso = 200; yperso = 700; num++; transiymax++; adv =1; xadv = 1200; yadv = 700; mort = int(random(2)); transi2 = 0; xt2 = width/2; yt2 = height-(height/2-height/n)-70; } if (transik2 == -720*(transiymax+1)) transi2 = -2; } if(bug == 101)image(sc1,0,0,1600,900); if(bug == 42)image(sc2,0,0,1600,900); if(bug == 272)image(sc3,0,0,1600,900); if(bug == 7)image(sc4,0,0,1600,900); } } } } } void keyPressed() { if (keyCode<256){ downKeys[keyCode] = true; if (sprite < 14){ sprite++;} else{ sprite = 1;} } } void keyReleased() { if (keyCode<256){ downKeys[keyCode] = false; sprite = 0; } } void mousePressed () { if(videotime == 0) tiacti++; videotime = 0; if (transi == -2) transi = -1; if (transi2 == -2) transi2 = -1; if (num == 7) num++; } void addVideo ( Video v ) { v.play(); video = v; } /* make Processing understand the HTMLVideoElement */ interface Video { boolean autoplay; boolean controls; int width; int height; int videoWidth; /*readonly*/ int videoHeight; /*readonly*/ boolean muted; float volume; boolean loop; boolean paused; boolean ended; String currentSrc; float duration; float currentTime; void play(); void pause(); } int j = 30; int k = int(random(3)); int k2 = int(random(3)); int jump = 5; void deplaadv(){ if (num == 1){ xadv = width-xperso-100; yadv = height-yperso-100; } if (num == 2){ if(xperso>width/2){ yadv=700-(xperso-width/2); } if(yperso width-(width/2-width/n)-100) k = 1; } if (k == 1){ xadv+=vitesse; if(xadv < (width/2-width/n)) k = 0; if(xadv > width-(width/2-width/n)-100) k = 0; } if (k2 == 0){ yadv-=vitesse; if(yadv < (height/2-height/n)) k2 = 1; if(yadv > height-(height/2-height/n)-100) k2 = 1; } if (k2 == 1){ yadv+=vitesse; if(yadv < (height/2-height/n)) k2 = 0; if(yadv > height-(height/2-height/n)-100) k2 = 0; } j--; if(j < 0){ k = int(random(3)); k2 = int(random(3)); j = 90; } } if(num == 4){ if (k == 0){ xadv-=vitesse; if(xadv < (width/2-width/n)) k = 1; if(xadv > width-(width/2-width/n)-100) k = 1; } if (k == 1){ xadv+=vitesse; if(xadv < (width/2-width/n)) k = 0; if(xadv > width-(width/2-width/n)-100) k = 0; } if (k2 == 0){ yadv-=vitesse; if(yadv < (height/2-height/n)) k2 = 1; if(yadv > height-(height/2-height/n)-100) k2 = 1; } if (k2 == 1){ yadv+=vitesse; if(yadv < (height/2-height/n)) k2 = 0; if(yadv > height-(height/2-height/n)-100) k2 = 0; } j--; if(j < 0){ k = int(random(2)); k2 = int(random(2)); j = 90; } } if(num == 5){ if (k == 0){ xadv-=vitesse*1.5; if(xadv < (width/2-width/n)) k = 1; if(xadv > width-(width/2-width/n)-100) k = 1; } if (k == 1){ xadv+=vitesse*1.5; if(xadv < (width/2-width/n)) k = 0; if(xadv > width-(width/2-width/n)-100) k = 0; } if (k2 == 0){ yadv-=vitesse*1.5; if(yadv < (height/2-height/n)) k2 = 1; if(yadv > height-(height/2-height/n)-100) k2 = 1; } if (k2 == 1){ yadv+=vitesse*1.5; if(yadv < (height/2-height/n)) k2 = 0; if(yadv > height-(height/2-height/n)-100) k2 = 0; } j--; if(j < 0){ k = int(random(2)); k2 = int(random(3)); j = 90; } jump = 7; } if(num == 6){ if (k == 0){ xadv-=vitesse*3; if(xadv < (width/2-width/n)) k = 1; if(xadv > width-(width/2-width/n)-100) k = 1; } if (k == 1){ xadv+=vitesse*3; if(xadv < (width/2-width/n)) k = 0; if(xadv > width-(width/2-width/n)-100) k = 0; } if (k2 == 0){ yadv-=vitesse*3; if(yadv < (height/2-height/n)) k2 = 1; if(yadv > height-(height/2-height/n)-100) k2 = 1; } if (k2 == 1){ yadv+=vitesse*3; if(yadv < (height/2-height/n)) k2 = 0; if(yadv > height-(height/2-height/n)-100) k2 = 0; } j--; if(j < 0){ k = int(random(2)); k2 = int(random(3)); j = 90; } jump = 10; } if (num == 4 || num == 3 || num == 5 || num == 6){ if(!((xperso+75xadv+75) || (yperso+75yadv+75))){ if (k==0) xadv-=vitesse*jump; if (k==1) xadv+=vitesse*jump; if (k2==1) yadv+=vitesse*jump; if (k2==0) yadv-=vitesse*jump; } if(xadv < (width/2-width/n))xadv +=vitesse; if(yadv < (height/2-height/n)) yadv +=vitesse; if(xadv > width-(width/2-width/n)-100)xadv -=vitesse; if(yadv > height-(height/2-height/n)-100) yadv -=vitesse; } } int rad2 = -1; int sprite2 = 0; void deplaadvsprite(){ if(num == 0){ image(fixeg,xadv, yadv); } if(num == 1){ translate(xadv+50,yadv+50); rotate(rad+PI); translate(-xadv-50,-yadv-50); if (sprite <= 0) image(fixeg, xadv, yadv); if (sprite == 1 || sprite == 2) image(p1g, xadv, yadv); if (sprite == 3 || sprite == 4) image(p2g, xadv, yadv); if (sprite == 5 || sprite == 6) image(p3g, xadv, yadv); if (sprite == 7 || sprite == 8) image(p4g, xadv, yadv); if (sprite == 9 || sprite == 10) image(p5g, xadv, yadv); if (sprite == 11 || sprite == 12) image(p6g, xadv, yadv); if (sprite == 13 || sprite == 14) image(p7g, xadv, yadv); translate(xadv+50,yadv+50); rotate(-rad-PI); translate(-xadv-50,-yadv-50); } if(num == 2){ if(xperso>width/2 || yperso= 3 && num <= 7){ if (k == 0){ if (k2 == 2) rad2 = -1+PI; if (k2 == 1) rad2 = -1+(3*PI/4); if (k2 == 0) rad2 = -1+(-3*PI/4); } if (k == 1){ if (k2 == 2) rad2 = -1; if (k2 == 1) rad2 = -1+(PI/4); if (k2 == 0) rad2 = -1-(PI/4); } if (k == 2){ if (k2 == 1) rad2 = -1+(PI/2); if (k2 == 0) rad2 = -1-(PI/2); } translate(xadv+50,yadv+50); rotate(rad2); translate(-xadv-50,-yadv-50); if (sprite2 <= 0) image(fixeg, xadv, yadv); if (sprite2 == 1 || sprite2 == 2) image(p1g, xadv, yadv); if (sprite2 == 3 || sprite2 == 4) image(p2g, xadv, yadv); if (sprite2 == 5 || sprite2 == 6) image(p3g, xadv, yadv); if (sprite2 == 7 || sprite2 == 8) image(p4g, xadv, yadv); if (sprite2 == 9 || sprite2 == 10) image(p5g, xadv, yadv); if (sprite2 == 11 || sprite2 == 12) image(p6g, xadv, yadv); if (sprite2 == 13 || sprite2 == 14) image(p7g, xadv, yadv); translate(xadv+50,yadv+50); rotate(-rad2); translate(-xadv-50,-yadv-50); if(!(k == 2 && k2 == 2)){ if (sprite2 <14) sprite2++; else sprite2 = 1; } else{ sprite2 = 0; } } } int rad = -1; void deplacement(){ float hypo = sqrt(pow((mouseX-xperso+200),2)+pow((mouseY-yperso+200),2)); float adja = mouseX-xperso+200; float val = acos(adja/hypo); translate(xperso+50,yperso+50); rotate(rad); translate(-xperso-50,-yperso-50); if (sprite == 0) image(fixe, xperso, yperso); if (sprite == 1 || sprite == 2) image(p1, xperso, yperso); if (sprite == 3 || sprite == 4) image(p2, xperso, yperso); if (sprite == 5 || sprite == 6) image(p3, xperso, yperso); if (sprite == 7 || sprite == 8) image(p4, xperso, yperso); if (sprite == 9 || sprite == 10) image(p5, xperso, yperso); if (sprite == 11 || sprite == 12) image(p6, xperso, yperso); if (sprite == 13 || sprite == 14) image(p7, xperso, yperso); if (sprite == -2 || sprite == -1) image(couteau, xperso, yperso); translate(xperso+50,yperso+50); rotate(-rad); translate(-xperso-50,-yperso-50); if (downKeys[RIGHT]){ xperso += vitesse; rad = -1;} if (downKeys[LEFT]){ xperso -= vitesse; rad = -1+PI;} if (downKeys[UP]){ yperso -= vitesse; rad = -1-PI/2; } if (downKeys[DOWN]){ yperso += vitesse; rad = -1+PI/2; } if (downKeys[RIGHT] && downKeys[UP]) rad = -1-PI/4; if (downKeys[RIGHT] && downKeys[DOWN]) rad = -1+PI/4; if (downKeys[LEFT] && downKeys[UP]) rad = -1-3*PI/4; if (downKeys[LEFT] && downKeys[DOWN]) rad = -1+3*PI/4; if(xperso < (width/2-width/n))xperso +=vitesse; if(yperso < (height/2-height/n)) yperso +=vitesse; if(xperso > width-(width/2-width/n)-100)xperso -=vitesse; if(yperso > height-(height/2-height/n)-100) yperso -=vitesse; if(adv == 1){ if(!((xperso+75xadv+75) || (yperso+75yadv+75))){ if (downKeys[RIGHT]) xperso -= vitesse; if (downKeys[LEFT]) xperso += vitesse; if (downKeys[UP]) yperso += vitesse; if (downKeys[DOWN]) yperso -= vitesse; } } if(!((xperso+80xadv+80) || (yperso+80yadv+80))){ if (mousePressed == true && del < 1) { adv = 0; } } if (del != 0){ del--; } if (mousePressed == true && del == 0){ del = 100; sprite = -2; } fill(200,200,200,200); noStroke(); rect(xperso,yperso-20,del,5); } void dessinerSalles(int nbsalle){ fill(255); float n = 2.5; float x = (width/2-width/n); float y = (height/2-height/n); float w = width-((width/2-width/n)*2); float h = height-((height/2-height/n)*2); for(int i = 0; i