/**
*
*
*/
/* @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