2023年11月23日 星期四

jason1230 week11

 1-1

今天做隨機座位,先畫一個4x4的方塊



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

1-2

座位需要新增座號,設int value[][];

void setup(){
  size(600,500);
  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++){
    for(int j=0;j<6;j++){
      fill(#F5B4B4);rect(j*100,i*100,100,100);
      fill(0);text(value[i][j],j*100+25,i*100+50);
      
    }
  }
}

1-3

重複交換數字(亂數交換)新增一個迴圈k(設定交換的次數),圖中k是設定交換2次


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;
    }
  }
  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++){
    for(int j=0;j<6;j++){
      fill(#F5B4B4);rect(j*100,i*100,100,100);
      fill(0);text(value[i][j],j*100+25,i*100+50);
      
    }
  }
}

2-1

嘗試做切換場景

int state=0;
void setup(){
  size(400,400);
  textSize(50);
}
void draw(){
  if(state==0){
    background(255);
    fill(0);text("Please Click to Start",80,200);
  }else if(state==1){
    
    background(255,0,0);
  }else if(state==2){
    
    background(0,0,255);
  }
}
void mousePressed(){
  if(state==0)state=1;
}

2-2

切換場景(關卡1用滑鼠關卡2用鍵盤)新增keyPressed,設x和y的值,如果方塊移動(x=300)時,狀態1就會變成狀態2

int state=0;
void setup(){
  size(400,400);
  textSize(50);
}
int x=50,y=50;
void draw(){
  if(state==0){
    background(255);
    fill(0);text("Please Click to Start",80,200);
  }else if(state==1){
    
    background(255,0,0);
    fill(255);rect(300,50,50,50);
    fill(128);rect(x,y,50,50);
  }else if(state==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;
  }
}

2-3

新增t(等待時間),進入到狀態2就會倒數計時


int state=0;
void setup(){
  size(400,400);
  textSize(50);
}
int x=50,y=50,t=100;
void draw(){
  if(state==0){
    background(255);
    fill(0);text("Please Click to Start",80,200);
  }else if(state==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){
    background(0,0,255);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;
  }
}

2-4

製作投籃機的拋物線

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;
}

3-1

增加投籃時有彈弓的彈射,設飛行(flying)
PImage imgRack;
void setup(){
  size(300,300);
  imgRack=loadImage("rack.jpg");
}
void draw(){
  background(255);
  image(imgRack,0,0);
  if(flying){
    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;
}

3-2

新增遊戲結束的指令
PImage imgRack;
void setup(){
  size(300,300);
  imgRack=loadImage("rack.jpg");
}
boolean gameOver=false;
void keyPressed(){
  gameOver=true;
}
void draw(){
  background(255);
  image(imgRack,0,0);
  if(flying){
    if(! gameOver){
    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;
}

沒有留言:

張貼留言