2022年1月17日 星期一

期末

float [] fishX=new float[30];//座標x
float [] fishY=new float[30];//座標y
float [] fishSize=new float[30];//大小
boolean[] fishAlive = new boolean[30];//是不是活的 true,false

void setup(){
  size(500,500);
  reset();
}//吃東西,越吃越大,不夠大不能吃,時間內吃完
void gameRun()
{
  background(255);
  pushMatrix();
  translate(-x, -y);
    for(int i=0; i<30; i++){
      if(fishAlive[i]==true){
        fill(255); ellipse(fishX[i], fishY[i], fishSize[i], fishSize[i] );
        if( dist(250+x,250+y, fishX[i],fishY[i])< (big+fishSize[i])/2 ){//相遇
          if(big>fishSize[i]){
            big = sqrt(big*big+fishSize[i]*fishSize[i]);//面積相加,對應的半徑
            fishAlive[i]=false;//魚死掉了
          }
          else
         {         
          gameOverMsg();
        }         
        }
      }      
    }
  fill(255,0,0); ellipse(250+x,250+y, big,big);
  popMatrix();
     
}
int time=180;
int blood=1;
void gameOverMsg()
{
 
  if(time>0){
  background(255,0,0);
  stroke(153);
  textSize(44);
  textAlign(CENTER, CENTER);
  line(0, 200, width, 200);
  text("Game Over",width/2+x,height/2+y);
  time--;
  if(time==0)
  {
    reset();
    }
  }
}
void reset()
{
  time=180;
  blood=1;
  x=0;
  y=0;
  big=15;
  for(int i=0; i<30; i++){
    fishX[i]=random(-500,500);
    fishY[i]=random(-500,500);
    fishSize[i]=random(10,50);
    fishAlive[i]=true;   
  }
}
float x=0, y=0, big=15;
void draw(){ 
  gameRun();      
}

//腳色移動
void keyPressed(){
  if(keyCode==LEFT) x-=3;
  if(keyCode==RIGHT) x+=3;
  if(keyCode==UP) y-=3;
  if(keyCode==DOWN) y+=3;
  }

 -------------

原先在gameOverMsg要設計延遲3秒,但因為不熟悉Processing特性,

所以誤用sleep() delay() 函式

沒有留言:

張貼留言