2014年10月27日 星期一

期中作業

期中作業
火箭躲隕石
01161160 劉景晟
00163106 李士昌
說明:
隕石落下的會越來越快
得到的分數也會越高
利用滑鼠來控制左右移動
碰到隕石就會GameOver
等待一段時間會重新開始

程式碼:
float pX[]={0,0,0},pY[]={0,0,0},rocketX=200, rocketY=650, bgY=0, rockX=0;
PImage imgBG, Sh;
PImage Rock[]=new PImage[2];
void setup() {
  size(500, 800);
  imgBG=loadImage("space1.jpg");
  for(int i=0;i<2;i++)  Rock[i]=loadImage("rock"+(i+1)+".png");
  Sh=loadImage("sh.png");
  imgBG.resize(500, 800);
  for(int i=0;i<2;i++){
    pX[i]= int(random(3))*150;pY[i]= 0;
  }
}
float gg=0,x=5;
int score=0,z=1;
void draw()
{
  if(gg>0){
    x=5;
    z=1;
    textSize(80);
    fill(255,0,0);
    text("GameOver\n",50,200);
    text("score\n"+score,50,300);

  if(gg==1)score=0;
  for(int i=0;i<2;i++){pX[i]=int(random(3))*150;pY[i]= 0;}
    fill(255,0,0,1);rect(0,0,500,800);gg--;
 
    return;
  }
  score+=z;
  background(imgBG);
  image(imgBG, 0, bgY, 500, 800);
  image(imgBG, 0, bgY-800, 500, 800);
  //image(Rock1, 0, 0, 150, 150);
  //image(Sh,rocketX, rocketY, 100, 100);
  bgY++;
  if (bgY>800) bgY=0;
  textSize(15);
      fill(255, 0, 0);
      text("Score:"+score, 50, 100);
 for(int i=0;i<2;i++) image(Rock[i],pX[i],pY[i],150,150);
 image(Sh,rocketX, rocketY, 100, 100);
 for(int i=0;i<2;i++){
   pY[i]+=x;
   if(abs(pX[i]-rocketX)<=75 && (rocketY-pY[i])<75)gg=300;
 if(pY[i]>650){pX[i]=int(random(3))*150;pY[i]= 0;x+=0.3;z+=1;}

 
 }

}
void mousePressed() {
  if (mouseButton == LEFT) {
    if(rocketX>=200)rocketX-=150;
  } else if (mouseButton == RIGHT) {
    if(rocketX<=200)rocketX+=150;
  }
}


沒有留言:

張貼留言