2012年11月12日 星期一

Midtern

完整程式碼:

//*****變數宣告*****
PImage s2,cat1,s1,s3,catshack; //圖片空間
float y = 450; //跳繩y變數
int now=1; //改變場景要用到的變數
int jumpH=0; //喵跳的高度
int mx=400,my=400; //喵的位子
boolean stop = false; //遊戲暫停會用到
int score =0; //計算得分會弄到
float count=1.5; //讓跳繩變快
float count2=0; //算跳了幾次

//*****設定*****
import ddf.minim.*;  //音樂
Minim minim;  //音樂
AudioPlayer player;  //音樂
void setup() {
  size(900, 600); //視窗大小
  s1=loadImage("bk2.png"); //場景1
  s2=loadImage("bk.jpg"); //場景2
  s3=loadImage("s3.jpg"); //場景3
  cat1=loadImage("cat.png");  //跳跳貓
  catshack=loadImage("catshack.png");
   //****音樂*****
   minim = new Minim(this);
  player = minim.loadFile("888.mp3");
  player.play();
}

//*****開始畫**** 
void draw() {
  image(s2,0,0);
  if (stop == false) {
  l();
  jump();
  judge();
  }

 //*****按Enter鍵休息****
  if (keyPressed) {
 stop = true;
  fill(0);
  textSize(150);
  text("STOP", 250, 300);
  }
  else stop = false;
  if(mouseX>622 && mouseX<895 && mouseY>96  && mouseY<130 && mousePressed){
  now=3;
  }
}

//*****跳跳繩的繩******
void l(){
  fill(255,0,128);
  y= y + count; 
  if (y > 600)  y = 350;
  strokeWeight(10);
  fill(255,0,128);
  line(0,y,width,y);
}

//*****跳和場景變換*****
void jump(){
  if(now==1){
    show1();
  if(mouseX>593 && mouseX<836 && mouseY>188  && mouseY<273 && mousePressed){
    now=2;
    }
  }
  if(now==2){
    show2();
    if(jumpH>0){
      jumpH=jumpH-10;
      my-=10;
     }
    if(my<400){
      my+=5;
     }
    image(cat1,mouseX,my,200,200); //讓跳跳人跟著滑鼠X移動
  }
  if(now==3){
  show3();
  }
}
void show1(){
  image(s1,0,0);
}
void show2(){
  //有手指指標
  if (mousePressed == true) {
    noCursor();
  } else {
    cursor(HAND);
     }
  fill(0);
  textSize(50); //右上角分數大小
  text(score+"score", 640,60); //右上角分數
}
void show3(){
  image(s3,0,0);
  fill(0);
  textSize(50);
  text("cheer up !", 250, 200);
  textSize(150);
  text(score, 360, 350);
  minim = new Minim(this);  //音樂
  player = minim.loadFile("888.mp3"); //匯入音樂檔
  player.play(); //音樂
}

//*****當按下滑鼠左鍵******
void mouseClicked()
{
   jumpH=100 - (200-my);
  score+=10; //分數跳一次加10分
  count2+=1;
  minim = new Minim(this);  //音樂
  player = minim.loadFile("jump.mp3"); //匯入音樂檔
  player.play(); //音樂
}

//*****當按下滑鼠左鍵******
void judge(){  
  if(mouseY>300  && mouseY<540 && mousePressed) now=4;
  if(now==4){ 
  image(catshack,mouseX,my,138,200);
  fill(0); 
  textSize(100); 
  text("Game over *_*' ",80,240); 
  text("Click Enter key !",65,350); 
  if(keyPressed)now=3;
  }
  if(now==3)show3();
  if(count2==35)count+=0.5;
}

執行結果:

場景 1


場景2

場景 2
結束的狀況


場景 3







圖片素材 :









連結網址:

心得:
           終於都做到一個段落了,雖然跟預期的有些不一樣,不過從無到有的結果實在令人十分感動,希望期末可以修正錯誤,再多加延伸,完成一個完整的遊戲。 
           在遊戲過程中按下play鍵,開始遊戲用滑鼠來控制貓咪左右移動,按下左鍵可讓貓咪跳起來。按下空白鍵可以暫停遊戲,螢幕畫面的右上角有分數統計。
          在寫程式的過程中,我們一度卡在偵測繩子與貓咪相互碰撞跌倒的地方,一直不知道該怎麼做,之後我們用偵測畫面的位置,來判斷貓咪是否被繩子辦到。但還是沒有完整的做好偵測繩子,還需要再做更改。


沒有留言:

張貼留言