2023年11月23日 星期四

m week11

 week11

劃出格子

void setup(){
  size(600,600);
}
void draw(){
  background(255);
  for( int i=0; i<4; i++){ //y
    for( int j=0; j<6; j++){ //x
      fill(#F5B4B4);rect(j*100, i*100, 100,100);
      fill(0);text("Hello",j*100+25, i*100+50);
    }
  }
}

void setup(){
  size(600,600);
  for( int i=0; i<4; i++){
    for(int j=0; j<6; j++){
      value[i][j] = int(random(40));
    }
  }
}
int [][] value = new int[4][6];
void draw(){
  background(255);
  for( int i=0; i<4; i++){ //y
    for( int j=0; j<6; j++){ //x
      fill(#F5B4B4);rect(j*100, i*100, 100,100);
      fill(0);text(value[i][j],j*100+25, i*100+50);
    }
  }
}

數字亂排
void setup(){
  size(600,500);
  for( int i=0; i<4; i++){
    for(int j=0; j<6; j++){
      value[i][j] = i*6+j + 10; //從10開始,數字不重複
    }
  }
  for( int k=0; k<2; k++){
    int i=int(random(4)), j=int(random(6));
    int i2=int(random(4)), j2=int(random(6));
    int temp=value[i][j];
    value[i][j] = value[i2][j2];
    value[i2][j2] = temp;
  }
}
int [][] value = new int[4][6];
void draw(){
  background(255);
  for( int i=0; i<4; i++){ //y
    for( int j=0; j<6; j++){ //x
      fill(#F5B4B4);rect(j*100, i*100, 100,100);
      fill(0);text(value[i][j],j*100+25, i*100+50);
    }
  }
}

轉場
按下Click to Start轉到另外一個場景
int state = 0; //0: white, 1: red, 2: blue
void setup(){
  size(400,400);
  textSize(50);
}
void draw(){
  if(state==0){ //第0關,白色
    background(255);
    fill(0); text("Click to Start", 80, 200);
  }else if(state==1){ //第1關,紅色
    background(255,0,0);
    
  }else if(state==2){ //第2關,藍色
    background(0,0,255);
    
  }
}
void mousePressed(){
  if(state==0) state=1;
}


當方塊碰到另一個方塊(300),就換到下一個場景(藍色)
int state = 0; //0: white, 1: red, 2: blue
void setup(){
  size(400,400);
  textSize(50);
}
int x = 50, y=50;
void draw(){
  if(state==0){ //第0關,白色
    background(255);
    fill(0); text("Click to Start", 80, 200);
  }else if(state==1){ //第1關,紅色
    background(255,0,0);
    fill(255); rect(300, 50, 50, 50);
    fill(128); rect(x, y, 50, 50);
  }else if(state==2){ //第2關,藍色
    background(0,0,255);
    
  }
}
void mousePressed(){
  if(state==0) state=1;
}
void keyPressed(){
  if(state==1 && keyCode==RIGHT){
    x += 10;
    if(x==300) state=2;
  }
}


第二關(藍色)會倒數100秒,跑完跳回第0關(白色)
int state = 0; //0: white, 1: red, 2: blue
void setup(){
  size(400,400);
  textSize(50);
}
int x = 50, y = 50, t = 100;
void draw(){
  if(state==0){ //第0關,白色
    background(255);
    fill(0); text("Click to Start", 80, 200);
    x = 50;
  }else if(state==1){ //第1關,紅色
    background(255,0,0);
    fill(255); rect(300, 50, 50, 50);
    fill(128); rect(x, y, 50, 50);
    t = 100;
  }else if(state==2){ //第2關,藍色(倒數10秒)
    background(0,0,255);
    fill(255,255,0); text("Wait " + t, 80, 200);
    t--;
    if(t==0) state = 0;
  }
}
void mousePressed(){
  if(state==0) state=1;
}
void keyPressed(){
  if(state==1 && keyCode==RIGHT){
    x += 10;
    if(x==300) state=2;
  }
}


示範投籃機
PImage imgRack;
void setup(){
  size(300,300);
  imgRack = loadImage("rack.jpg");
}
void draw(){
  background(255);
  image(imgRack, 0, 0);
  if(mousePressed){
    fill(255); ellipse(posX, posY, 20, 20);
    line(posX, posY, mouseX, mouseY);
  }
  fill(#FFA652); ellipse(mouseX, mouseY, 20, 20);
}
float posX = -100, posY = -100;
void mousePressed(){
  posX = mouseX;
  posY = mouseY;
}

按住滑鼠左鍵放開讓籃球能投出去
PImage imgRack;
void setup(){
  size(300,300);
  imgRack = loadImage("rack.jpg");
}
void draw(){
  background(255);
  image(imgRack, 0, 0);
  if(flying){
    fill(#FFA652); ellipse(x, y, 20, 20);
    x += vx;
    y += vy;
    vy += 0.98;
  }else{
    x = mouseX;
    y = mouseY;
    if(mousePressed){
      fill(255); ellipse(posX, posY, 20, 20);
      line(posX, posY, x, y);
    }
  }
  fill(#FFA652); ellipse(x, y, 20, 20);
}
boolean flying = false;
float x, y, vx, vy;
float posX = -100, posY = -100;
void mousePressed(){
  x = posX = mouseX;
  y = posY = mouseY;
  flying = false; //不飛行
}
void mouseReleased(){
  vx = posX-mouseX;
  vy = posY-mouseY;
  flying = true; //飛行 
}

PImage imgRack;
void setup(){
  size(300,300);
  imgRack = loadImage("rack.jpg");
}
boolean gameOver=false;
void keyPressed(){
  gameOver = true; // 在某個狀態下 game over, 要暫停
}
void draw(){
  background(255);
  image(imgRack, 0, 0);
  if(flying){ //if( ! keyPressed ){
    if( ! gameOver ){
      x += vx; //反過來說, 沒有 game over 就會動
      y += vy;
      vy += 0.98;
    }
  }else{
    x = mouseX;
    y = mouseY;
    if(mousePressed){
      fill(255); ellipse(posX, posY, 20, 20);
      line(posX, posY, x, y);
    }
  }
  fill(#FFA652); ellipse(x, y, 20, 20);
}
boolean flying = false;
float x, y, vx, vy;
float posX = -100, posY = -100;
void mousePressed(){
  x = posX = mouseX;
  y = posY = mouseY;
  flying = false; //不飛行
}
void mouseReleased(){
  vx = posX-mouseX;
  vy = posY-mouseY;
  flying = true; //飛行 
}

沒有留言:

張貼留言