2019年11月13日 星期三

week08_葉子的期中作品


【在五秒內找出倉鼠的小遊戲】

程式碼如下

Mouse[] m=new Mouse[6];
PImage img,imghe,imgbe,imghide,imgno,imgyes;
int ans;
void setup(){
 size(900,500);
 background(255, 255, 255);
 img=loadImage("start.png");
 imghe=loadImage("he.png");
 imgbe=loadImage("be.png");
 imghide=loadImage("hide.png");
 imgno=loadImage("no.png");
 imgyes=loadImage("yes.png");
 for(int i=0;i<6;i++)
 {
   m[i]=new Mouse(0+i*150,175);
 }
 ans= int(random(6));
 m[ans].find=true;
}

class Mouse{
  PVector pos;
  boolean find=false;
  Mouse(float x,float y){
     pos = new  PVector(x,y);
  }
  
}

void play(){ //遊戲的部分
 for(int i=0;i<6;i++)
  {
    if(i==show) image(imgno, m[i].pos.x, m[i].pos.y, 150, 150);
    else image(imghide, m[i].pos.x, m[i].pos.y, 150, 150);
    if(i==show && i==ans)
    {
        image(imgyes, m[i].pos.x, m[i].pos.y, 150, 150);
        time=-1;
    }
   }
  if(wintime>0) wintime--;
  else if(wintime==0){
    stage=2;
  }
  if(time>0) time--;
  else if(time==0) stage=3;
}

int wintime=-1;
int time=300;
int stage=0;
void draw(){
  if(stage==0){ //開始頁面
    background(255, 255, 255);
    image(img, 200, 0,500, 500);
  }
  else if(stage==1){ //遊戲頁面
    background(255, 255, 255);
    play();
    }
  else if(stage==2){ //成功頁面
    background(255, 255, 255);
    image(imghe, 0, 0,900, 500);
  }
  else if(stage==3){ //失敗頁面
    background(255, 255, 255);
    image(imgbe,0, 0,900, 500);
  }
  
}
int show = -1;
void mousePressed() {
  for(int i=0;i<6;i++){
   if(dist(mouseX,mouseY, m[i].pos.x , m[i].pos.y)<90) show=i;
  }
  if(show==ans) wintime=60;
}
void keyPressed() { 
  if (stage==0) stage=1;
}
void mouseReleased(){
  if(show!=ans) show=-1;
}



( 按空白鍵開始 )



















(如果在五秒內找到倉鼠)















(如果沒找到倉鼠)












沒有留言:

張貼留言

alanhc 互動技術-week17 [final]

回顧這學期的作品:  期中作業:LANDING:PLANET 賣點&特點: 炫麗的特效 物理(星球重力及降落)及粒子系統(噴射) 世界地圖可根據視角縮放 困難點: 重寫3次最終改寫成物件導向的CLASS寫法...