2018年10月25日 星期四

week 07 JN

WEEK 07

目標:做出血條,倒數計時以及開場畫面、切換關卡、死亡

一.

1.先將血量條設成滿的
2.當滑鼠點一下血量就會少一格
3.當血量為0後 跑出gameover

以下為程式碼

int life=10;
boolean gameOver = false ;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,225);
  fill(255); rect(50,50,100,20);
  fill(255,0,0); rect(50,50,life*10,20);
  if(gameOver){
    textSize(40);
    text("Game Over!",150,150);
  }
}
void mousePressed(){
  life--;
  if(life<=0)  gameOver = true;
}

二.

1.做出開始、遊戲中以及結束的畫面
2.案鍵盤1的話 會跑進遊戲中的畫面2
3.畫面2會先設定倒數計時器 等到時間為0自動跳到畫面3


int  state=0;
int remainTime=0;
void setup(){
  size(800,600);
}
void draw(){
  if(state==0){
    drawOP();
    if(key=='1') {state=1; remainTime=60*60;}
  }else if(state==1){
    drawPlayer();
  }else if(state==2){
    drawED();
  }
}
void drawED(){
  background(0);
  fill(255,0,0); text("Game Over",100,100);
}
void drawPlayer(){
  background(#F59300);
  fill(#161FF2); text("Playing... you can press 2 to End",10,100);
  text("remain:" +remainTime,10,200);
  remainTime--;
  if(remainTime<=0) state=2;
}
void drawOP(){
  background(0);
  fill(255,255,0);
  textSize(30); text("Opening...You can press 1 to play",10,100);
}
以下為今天期末作品的進度

float pikalX=100 , pikalY=350, pikalVX=0,pikalVY=0;
boolean flying=false;
void setup(){
  size(600,400);
}
void draw(){
  background(#8DBBFA);
  fill(255,255,0); ellipse(pikalX,pikalY,60,90);
  pikalX+=pikalVX;
  if(flying){
    pikalY+=pikalVY; pikalVY+=0.98;
    if(pikalY>=350) { flying=false; pikalY=350;}
  }

}
void keyPressed(){
  if(keyCode==LEFT)  pikalVX=-4;
  if(keyCode==RIGHT) pikalVX=+4;
  if(keyCode==UP && flying == false ) {flying=true; pikalVY=-20;}
}
void keyReleased(){
  if(keyCode==LEFT)  pikalVX=0;
  if(keyCode==RIGHT) pikalVX=0;
}

沒有留言:

張貼留言