/* @pjs preload="data/bowl.png,data/egg.png,data/egg.png,data/egg2.png,data/egg3.png,data/egg4.png,data/egg5.png,data/yaku.png,data/fire.png,data/tomato.png,data/paseri.png,data/spoon.png"; */ PFont myfont; int usual,count,iro; PImage egg,egg2,egg3,egg4,egg5,bowl,yaku,fire,tomato,paseri,spoon; float x,x2,x3,x4,x5,x6,y,y2,y3,y4,y5,y6,speed,speed2,speed3,speed4,speed5,t; float speedx = 0.05; float speedy = 0.05; int pressed =0; void setup(){ size(500,500); fill(0); myfont = createFont("MS Gothic",48); textFont(myfont,48); textAlign(CENTER,CENTER); smooth(); usual =0;//通常状態を0とする iro =0; bowl = loadImage("data/bowl.png"); egg = loadImage("data/egg.png"); egg2 = loadImage("data/egg2.png"); egg3 = loadImage("data/egg3.png"); egg4 = loadImage("data/egg4.png"); egg5 = loadImage("data/egg5.png"); yaku = loadImage("data/yaku.png"); fire = loadImage("data/fire.png"); tomato = loadImage("data/tomato.png"); paseri = loadImage("data/paseri.png"); spoon = loadImage("data/spoon.png"); x =(random(20,100)); x2 =(random(100,140)); x3 =(random(380,430)); x4 =(random(250,380)); x5 =(random(140,250)); y=-100; y2=-100; y3=-100; y4=-100; y5=-100; speed = 0.8; //速さの変え方の参考→http://jkoba.net/prototyping/processing/basic_animation_practice.html speed2 = 1.0; speed3 = 1.3; speed4 = 1.8; speed5 = 2.0; t = millis();//時間で画面の切り替えhttp://www2.kobe-u.ac.jp/~tnishida/misc/processing-state.html count=0; } void draw(){ if(usual == 0){//通常状態のときタイトル title(); } else if(usual == 1){//1のときゲームの画面 game(); } else if(usual == 2){//2のときゲーム2の画面 game2(); } else if(usual == 3){//3のとき終了の画面 end(); } else if(usual == 4){ //4のとき途中説明画面 setsumei(); } t =(millis() - t)/1000.0; } void title(){ background(152,251,152); noStroke(); fill(255); ellipse(250,130,500,130); textSize(55); fill(152,251,152); text("mouse de cooking!",250,130); fill(255); textSize(30); text("マウスを上下左右に動かしたり",250,300); text("クリックしたりして操作します",250,350); textSize(25); text("-click to start-",250,430); if(mousePressed){ usual= 1; } } void game(){ background(152,251,152);//背景 fill(255); noStroke(); rect(-10,0,40,420); rect(110,0,40,420); rect(230,0,40,420); rect(350,0,40,420); rect(470,0,40,420); fill(222,184,135); rect(0,420,500,80); image(bowl,mouseX-45,350,110,90); image(egg,x2-35,y2,70,70); //卵が落下する if(y2 > 330) y2=-100;{ y2 += speed; } image(egg2,x3-35,y3,70,70); if(y3 > 330) y3=-100;{ y3 +=speed2; } image(egg3,x4-35,y4,70,70); if(y4 > 330) y4=-100;{ y4 +=speed3; } image(egg4,x5-35,y5,70,70); if(y5 > 330) y5=-100;{ y5 +=speed4; } image(egg5,x-35,y,70,70); if(y > 330) y=-100;{ y +=speed5; } textSize(30); fill(0); text( + count, 50,50); if(y2 >= 330 && mouseX > (x2-35) && mouseX < (x2+100)){ //当たり判定...範囲設定が??? count = count +1; } else if( y3 >= 330 && mouseX > (x3-35) && mouseX < (x3+100)){ count = count +1; } else if( y4 >= 330 && mouseX > (x4-35) &&mouseX < (x4+100)){ count = count+1; } else if( y5 >= 330 && mouseX > (x5-35) && mouseX < (x5+100)){ count = count+1; } else if( y >= 330 && mouseX > (x-35) && mouseX < (x+100)){ count = count+1; } if(t > 25){ usual =4; } } void setsumei(){ background(152,251,152); fill(255); textSize(90); text("finish!",250,140); textSize(40); text("次は卵を焼くよ",250,310); textSize(40); text("5秒後にstart!",255,370); if(t > 30){ usual =2; } } void game2(){ background(152,251,152); fill(255); noStroke(); rect(-10,0,40,420); rect(110,0,40,420); rect(230,0,40,420); rect(350,0,40,420); rect(470,0,40,420); fill(222,184,135); rect(0,420,500,80); fill(128,128,128); rect(130,470,240,30); tint(random(100,255),0,random(1,255)); image(fire,110,280,280,250); noTint(); image(yaku,mouseX-200,mouseY-220,600,450); eggyaki(x6,y6); x6 += (mouseX-x6)*speedx; y6 += (mouseY-y6)*speedy; } void eggyaki(float x6,float y6){ noStroke(); fill(252,218,0,255); ellipse(x6,y6-20,240,100); fill(252,218,0,255); ellipse(x6,y6-10,230,90); fill(252,218,0,255); ellipse(x6,y6,220,80); if(iro == 0){ //色の切り替え http://artificialarts.hatenablog.com/entry/2018/05/21/212814 fill(253,240,150); } else if(iro == 1){ fill(252,232,95); } else if(iro == 2){ fill(255,233,61); } else if(iro == 3){ fill(255,208,61); } if(t > 35){//経過時間に応じて色を変化 iro = 1; } if(t > 42){ iro = 2; } if(t > 47){ iro = 3; } ellipse(x6,y6-20,240,100); //卵 ellipse(x6,y6-10,230,90); ellipse(x6,y6,220,80); if(t > 51){ //画面切り替え usual =3; } } void end(){ background(152,251,152); if(pressed == 1){ //スタートの1回クリック分 stroke(156,156,156); //皿 strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); textSize(40); fill(255,0,0); text("クリックして",250,250); text("お皿に盛りつけよう!",250,310); } else if(pressed == 2){ stroke(156,156,156); //皿 strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); noStroke(); fill(255,99,36); //卵 ellipse(250,270,360,300); } else if(pressed == 3){ stroke(156,156,156); //皿 strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); noStroke(); fill(255,208,61); //卵 ellipse(250,270,410,350); image(tomato,mouseX-20,mouseY-130,150,150); } else if(pressed == 4){ stroke(156,156,156); //皿 strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); noStroke(); //卵 fill(255,208,61); ellipse(250,270,410,350); fill(255,0,0); ellipse(250,270,200,390); //ケチャップ image(paseri,mouseX-120,mouseY-130,150,150); } else if(pressed == 5){ stroke(156,156,156); //皿 strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); noStroke(); fill(255,208,61); //卵 ellipse(250,270,410,350); fill(255,0,0); ellipse(250,270,200,390); //ケチャップ stroke(0,100,0); //パセリ strokeWeight(5); point(245,268); point(257,270); point(242,260); point(260,274); point(253,265); point(238,273); point(250,280); point(262,258); point(250,290); point(230,262); point(270,277); point(232,256); point(252,250); point(256,254); point(254,279); point(244,281); point(247,260); point(246,252); point(253,288); } else if(pressed == 6){ stroke(156,156,156); strokeWeight(10); fill(255,255,255); ellipse(250,270,470,470); stroke(184,184,184); ellipse(250,270,370,370); noStroke(); fill(255,208,61); ellipse(250,270,410,350); fill(255,0,0); ellipse(250,270,200,390); stroke(0,100,0); strokeWeight(5); point(245,268); point(257,270); point(242,260); point(260,274); point(253,265); point(238,273); point(250,280); point(262,258); point(250,290); point(230,262); point(270,277); point(232,256); point(252,250); point(256,254); point(254,279); point(244,281); point(247,260); point(246,252); point(253,288); textSize(90); fill(250,58,51); text("Finish!",250,40); textSize(40); text("Thank you for playing!",250,475); image(spoon,mouseX-100,mouseY-60,180,160); } } void mousePressed(){ pressed++; }