2018年10月25日 星期四

Week07昱霖的筆記

做出血條(HP0)
int life=10;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,205);
  rect(50,50,100,20);
}
血條(HP100)
int life=10;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,205);
  fill(255); rect(50,50,100,20);
  fill(255,0,0); rect(50,50,life*10,20);
}
點擊滑鼠會造成扣血
void mousePressed(){
  life--;
}

HP歸零顯示Game Over
int life=10;
boolean gameOver=false;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,205);
  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;
}

Week07 愷

小朋友下樓梯設定

week07矮矮的筆記

其中進度
float[] brickY=new float[80];
float[] brickX=new float[80];
int [] bricklife=new int[80];

float ballX=400, ballY=560, ballVX=0, ballVY=0;
void setup()
{
  size(800,600);
  fill(255,60,53);
  
  for(int i = 0 ; i < 80 ; i++ )
  {
      brickX[i] = (i%10)*90 ;
      brickY[i] =int (i/10)*35;
      bricklife[i]=1;
  }
}
boolean flying =false,gameover=false;
void draw()
{
  background(0);
  fill(255,0,255);
  rect (mouseX-50,580, 150,20);
  fill(123,123,156);
  for(int i=0;i<80;i++)
  {
    if(bricklife[i]==0) continue;
    rect (brickX[i],brickY[i], 80,30);
    if(brickX[i] < ballX && ballX < brickX[i]+75 && abs(ballY-brickY[i])<20)
    bricklife[i]=0;
    if(bricklife[i]==0)
    {
      if(ballX>=brickX[i]) ballVX=10;
      if(ballX<=brickX[i]) ballVX=-10;
      if(ballY>=brickY[i]) ballVY=10;
      if(ballY<=brickY[i]) ballVY=-10;
    }
  }
  fill(123,213,0);
  ellipse(ballX,ballY,50,50);
  if(flying &&!gameover)
  {
    ballX+=ballVX; 
    ballY+=ballVY; 
    if(ballY>560 && abs(mouseX-ballX)<75)
    {
      ballVY=-abs(ballVY);
      ballY=500;
    }
    if(ballY>580) gameover=true;
    if(ballY<0)
    {
      ballVY=-ballVY;
      ballY=0;
    }
    if(ballX>780) 
    {
      ballX=780-(ballX-780);
      ballVX=-abs(ballVX);
    }
    if(ballX<0) 
    {
      ballX=abs(ballX);
      ballVX=abs(ballVX);
    }
  }
  else ballX=mouseX;
}
void mousePressed()
{
  flying=true; ballVY=-20; ballVX=3;
}

Week 07 宋侑恩

Week 07 Part1 - 血量

程式碼:

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


Week 07 Part2-1 - 切換場景+時間倒數

程式碼:

PImage imgBG;
int remainTime=0;
int state=0;//0:OP opening, 1:playing, 2:ED end
void setup(){
  size(600,600);
  imgBG=loadImage("background.png");
}
void draw(){
  if(state==0){
    drawOP();
    if(key=='1'){
      state=1; remainTime=5*60;
    }
  }else if (state==1){
    drawPlaying();
  }else if(state==2){
    drawED();
  }
}
void drawOP(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("Press 1 To Play",180,300);
}
void drawPlaying(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("Press 2 To End",190,200);
  text("remainTime: "+remainTime,180,300);
  remainTime--;
  if(remainTime<=0) state=2;
}
void drawED(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("GameOver",225,300);
}




Week 07 Part2-2 - 以秒數時間倒數

程式碼:

PImage imgBG;
int remainTime=0;
int state=0;//0:OP opening, 1:playing, 2:ED end
void setup(){
  size(600,600);
  imgBG=loadImage("background.png");
}
void draw(){
  if(state==0){
    drawOP();
    if(key=='1'){
      state=1; remainTime=5*60;
    }
  }else if (state==1){
    if(key=='2') state=2;
    drawPlaying();
  }else if(state==2){
    drawED();
  }
}
void drawOP(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("Press 1 To Play",180,300);
}
void drawPlaying(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("Press 2 To End",190,200);
  text("remainTime: "+(remainTime+59)/60,180,300);
  remainTime--;
  if(remainTime<=0) state=2;
}
void drawED(){
  image(imgBG,0,0,width,height);
  fill(255,255,0);
  textSize(30); text("GameOver",220,300);
}



week07 互動技術筆記@

1.製作血條

利用布林變數控制遊戲是否結束

int life=10;
boolean gg=false;
void setup(){
  size(500,500);
}

void draw(){
  background(0,0,205);
  fill(255); rect(50,50,100,20);
  fill(255,0,0); rect(50,50,life*10,20);
  if(gg){
    textSize(40);
    text("Game Over",150,150);
  }
}

void mousePressed(){
  life--;
  if(life<=0) gg=true;
}

2.開場畫面切換






int state=0;
int remaintime=0;
void setup(){
  size(800,600);
}
void draw(){
  if (state==0){
    op();
    if(key=='1')  {state=1; remaintime=5*60;}
  }
  else if(state==1){
    play();
  }
  else if(state==2){
    ed();
  }
}
void op(){
  background(0);
  fill(#F5DE07);
  textSize(30); text("Press 1 to play",10,100);
}
void play(){
  background(#F0D90C);
  fill(#161FF2);  text("Press 2 to end",10,100);
  text("remain: "+remaintime,10,150);
  remaintime--;
  if(remaintime<=0) state=2;
}
void ed(){
  background(0);
  fill(#F0D90C);  text("Game Over",10,100);
}

將(remaintime+59)/60 可以換成一般秒數
沒+59的話會和實際秒數延遲一秒

Week07_阿天筆記

小朋友下樓梯
一:
做出一個平面


 換成紅色

滑鼠點就會扣命 LIFE設10

扣完就會出現GAME OVER

二:
期中 上下左右移動

float bombmanX=100,bombmanY=100, bombmanVX=0, bombmanVY=0;
void setup(){
  size(600,400);
}
void draw(){
  background(255);
  fill(255); ellipse(bombmanX,bombmanY, 50,50);
  bombmanX+=bombmanVX;
  bombmanY+=bombmanVY;
}
void keyPressed(){
  if(keyCode==LEFT)  bombmanVX= -2;
  if(keyCode==RIGHT) bombmanVX= +2;
  if(keyCode==UP) bombmanVY= -2;
  if(keyCode==DOWN) bombmanVY= +2;
}
void keyReleased(){
  if(keyCode==LEFT)  bombmanVX= 0;
  if(keyCode==RIGHT)  bombmanVX= 0;
  if(keyCode==UP)  bombmanVY= 0;
  if(keyCode==DOWN)  bombmanVY= 0;
}

week07

製作血條

int life=10;///一格血量為10
boolean gameOver=false;
void setup(){
  size(500,500);
}
void draw(){
  background(0,0,200);
  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;
}
























畫面切換

int state=0;
int remainTime=0;
void setup(){
  size(800,600);
}
void draw(){
  if(state==0){
    drawOP();
    if(key=='1'){state=1;remainTime=5*60;}///1/60秒,所以要乘60
  }
  else if(state==1){ 
    drawPlayer();
  }
  else if(state==2){
    drawED();
  }
}
void drawED(){
  background(0);
  fill(#F0D90C);text("Game Over",100,100);
}
void drawPlayer(){
  background(#F0D90C);
  fill(#120FF2);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(#F5DE07);
  textSize(30);text("Opening... You can press 1 to play",10,100);
}












 text("remain:"+(remainTime+59)/60,10,200);
///+59在除60能自動進位成1