顯示具有 08160572_曹睿喬 標籤的文章。 顯示所有文章
顯示具有 08160572_曹睿喬 標籤的文章。 顯示所有文章

2022年1月17日 星期一

豆腐女孩最終日

 

完成遊戲畫面
程式碼:

PImage img1,img2;
PImage[] img3 = new PImage[14];
float x=155,y=300,vx=0,vy=0;//女孩
boolean jumping=false;
boolean alive=true;
float []tofuX=new float[100];
float []tofuVX=new float[100];
int n=1;//豆腐數量
int state=0;
int tofuH=0;
int t=0;
PFont timberman;
void setup(){
  size(400,600);
  
  img1=loadImage("bgg.JPG");
  img2=loadImage("111.png");
  
  img3[0]  = loadImage("1111.gif");
  img3[1]  = loadImage("2222.gif");
  img3[2]  = loadImage("3333.gif");
  img3[3]  = loadImage("4444.gif");
  img3[4]  = loadImage("5555.gif");
  img3[5]  = loadImage("6666.gif");
  img3[6]  = loadImage("7777.gif");
  img3[7]  = loadImage("8888.gif");
  img3[8]  = loadImage("9999.gif");
  img3[9]  = loadImage("1010.gif");
  img3[10]  = loadImage("1011.gif");
  img3[11]  = loadImage("1012.gif");
  img3[12]  = loadImage("1013.gif");
  img3[13]  = loadImage("1014.gif");
  tofuX[0]=140;//豆腐剛開始的位子
  generateTofu();
}
int k=0;
void draw(){
  image(img1,0,0,400,600);
  timberman = createFont("Pixelony.ttf", 40);//遊戲字體
  text("Score:"+(n-1),130,100);
  textFont(timberman);
  for(int i=0;i<n;i++)
  {
    rect(tofuX[i],400-i*65+tofuH,125,65);
  }
  if(state==1){
    if(t>0){
      tofuH++;t--;
    }else{
      state=0;
      
    }
  }
  
  image(img2,x,y+tofuH,100,100);
  if(jumping){
    if(vy>0 && tofuX[n-1]<x+70 && x<tofuX[n-1]+95 && y+100<400-(n-1)*65 && y+100+vy>400-(n-1)*65){
      jumping=false; vy=0; y=400-(n-1)*65-100;
      screenroll();
      generateTofu();
    }else{
      y+=vy;
      vy+=0.98;
    }
  }
  tofuX[n-1]+=tofuVX[n-1];
  
  if(!jumping && tofuVX[n-1]!=0 && tofuX[n-1]<x+75 && x<tofuX[n-1]+100){
    
    alive=false;
  }
  if(y>600)
  {
    alive=false;
  }
  if(alive==false)//死亡
  {
    image(img3[k],0,0,400,600);
    if(frameCount%6==0) k=(k+1)%14;
    timberman = createFont("Pixelony.ttf", 40);//遊戲字體
    text("Your Score:"+(n-1),70,100);
    fill(#EA2F4B);
    textFont(timberman);
  }
}

void mousePressed(){
  if(!jumping){  
    jumping=true;
    vy=-22;
  }
}

void generateTofu(){
  int dir=int(random(2));//0=左邊,1=右邊
  n++;
  if(dir==0){
    tofuX[n-1]=400;
    tofuVX[n-1]=-2;
  }else{
    tofuX[n-1]=-125;
    tofuVX[n-1]=2;
  }
 
}
void screenroll(){
  state= (state+1)%2;
  if(state==0){
   
  }else if(state==1){
    t+=65;
  }
}
結束遊戲畫面的動態圖片








豆腐女孩第二天

 

女孩的圖片
第二天我們加上女孩在上面彈跳

PImage img1;
float x=203,y=370,vx=0,vy=0;//女孩
boolean jumping=false;
float []tofuX=new float[100];
float []tofuVX=new float[100];
int n=1;//豆腐數量
int state=0;//0是不會動,1是豆腐移動,2是豆腐停止且往下降
int tofuH=0;
int t=0;

void setup(){
  size(400,600);
  img1=loadImage("bgg.JPG");
  tofuX[0]=140;//豆腐剛開始的位子
  generateTofu();
}
void draw(){
  image(img1,0,0,400,600);
  for(int i=0;i<n;i++)
  {
    rect(tofuX[i],400-i*65+tofuH,125,65);
  }
  if(state==1){
    if(t>0){
      tofuH++;t--;
    }else{
      state=0;
      
    }
  }
  tofuX[n-1]+=tofuVX[n-1];
  if(!jumping && tofuVX[n-1]!=0 && tofuX[n-1]<x+30 && x-30<tofuX[n-1]+125){
    background(255,0,0);
  }
  ellipse(x,y+tofuH,60,60);
  if(jumping){
    if(vy>0 && tofuX[n-1]<x && x<tofuX[n-1]+125 && y+33<400-(n-1)*65 && y+33+vy>400-(n-1)*65){
      jumping=false; vy=0; y=400-(n-1)*65-30;
      screenroll();
      generateTofu();
    }else{
      y+=vy;
      vy+=0.98;
    }
  }
}
void mousePressed(){
  if(!jumping){  
    jumping=true;
    vy=-24;
  }
}
void keyPressed(){
  generateTofu();
}
void generateTofu(){
  int dir=int(random(2));//0=左邊,1=右邊
  n++;
  if(dir==0){
    tofuX[n-1]=400;
    tofuVX[n-1]=-2;
  }else{
    tofuX[n-1]=-125;
    tofuVX[n-1]=2;
  }
}
void screenroll(){
  state= (state+1)%3;
  if(state==0){
   
  }else if(state==1){
    t=65;
  }
}

豆腐女孩第一天

 

遊戲的背景圖

第一步,我們幫遊戲家背景,還有豆腐塊疊加
但數值有點難調整
PImage img1;
float []tofuX=new float[100];
int n=0;//豆腐數量
int tofuDir=0;//豆腐方向1 -1
int tofuH=0;
int state=0;//0是不會動,1是豆腐移動,2是豆腐停止且往下降
int t=0;
float gx=203,gy=370,vx=0,vy=0;
boolean jumping=false;
void setup(){
  size(400,600);
  img1=loadImage("bgg.JPG");
  //for(int i=0;i<100;i++) tofuX[i] = random(100,200);
}
void draw(){
  image(img1,0,0,400,600);
  fill(#D7DCE0);
  rect(142,400+tofuH,125,65);//底座
  for(int i=0;i<n;i++){
    rect(tofuX[i],335-i*65+tofuH,125,65);
  }
  if(state==1){//移動豆腐
    tofuX[n-1]+=tofuDir;
  }else if(state==2){
    if(t>0){
      tofuH++;t--;
    }else state=3;
  }
  fill(#88BDD8);ellipse(gx,gy,60,60);
  if(jumping){
    gx += vx; gy += vy; vy += 0.98;
    if(gy>370){
      gy=370;jumping=false;
    }
    if(n>0)
    {
      float tofuY=335-(n-1)*65+tofuH;
      if( tofuX[n-1]<gx && gx<tofuX[n-1]+125 && tofuY<gy && gy<tofuY+65 ){//夾在中間
        if(state!=2) changeState();
      }
    } 
  }
  
  
}
void mousePressed(){
    jumping=true;
    vy=-16;
}
void keyPressed(){
  changeState();
}
void changeState(){
  state= (state+1)%3;
  if(state==0){
  
  }else if(state==1){
    tofuDir=int(random(2));//0,1
    if(tofuDir==0) tofuDir=-1;
    //假設random取出數是0,因為方向是1跟-1,所以要將0變成-1
    n++;
    if(tofuDir==1) tofuX[n-1]=-125;//最左邊
    if(tofuDir==-1) tofuX[n-1]=400;//最右邊
    
  }else if(state==2){
    t=65 ;
  }
  
}


2021年11月29日 星期一

week 10

 

讓小人移動腳步
PImage img;
void setup(){
  size(500,500);
  img=loadImage("img.jpg");
  imageMode(CENTER);
}
int a=0, b=0, x=250, y=250;
void draw(){
  background(255);
  //image( img, 0,0);
  image(  img.get(141*a, 211*b, 141,211), x,y);
  if(frameCount%30==0) a = (a+1)%4;
}
void keyPressed(){
  if(keyCode==RIGHT){ b=3; x++; }
  if(keyCode==LEFT) { b=2; x--; }
  if(keyCode==UP) { b=1; y--; }
  if(keyCode==DOWN){ b=0; y++; }
}






2021年11月22日 星期一

week07

 
STEP 01-1

讓球掉下來,控制速度
掉落的金幣(座標x,y)

//Step01-1:能不能東西動起來!
float x=250,y=0,vx=0,vy=3;
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  ellipse(x,y,50,50);
  //y++;//速度1,2,3,...
  //y++;
  //y++;
  //y=y+3;//3是速度
  y=y+vy;//vy是速度
}

STEP 01-2

//Step01-2:不只1個在動!!!
float x=250,y=0,vx=0,vy=3;
float x2=150,y2=50,vx2=0,vy2=2;
void setup(){
  size(500,600);
}
void draw(){
  //background(255);
  ellipse(x,y,50,50);
  ellipse(x2,y2,50,50);
  y=y+vy;//vy是速度
  y2=y2+vy2;//vy2是速度
}

STEP 01-3


//Step01-3:很多組!for+陣列
float []x={250,150};
float []y={0,50};
float []vx={0,0};
float []vy={3,2};
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<2;i++){
  ellipse(x[i],y[i],50,50);
  y[i]=y[i]+vy[i];//vy是速度
  }
}


用for迴圈讓多個圓落下
//Step01-3:很多組!for+陣列
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){   ///i=球的個數
  ellipse(x[i],y[i],50,50);
  y[i]=y[i]+vy[i];//vy是速度
  }
}

STEP 01-4


碰到上下牆壁回彈

//Step01-4:很多組!for+陣列
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
  ellipse(x[i],y[i],50,50);
  y[i]=y[i]+vy[i];//vy是速度
  if(y[i]>600) vy[i]=-vy[i];//碰到下方
  if(y[i]<0) vy[i]=-vy[i];//接到上方
  }
}

STEP 02-1

用滑鼠移動紅球,碰到黃球時,該黃球會暫停

//Step02-1:mouse碰到球,可以得分
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vx={0,0,0,0};
float []vy={3,2,2.5,4};
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){
  fill(255,255,0);
  ellipse(x[i],y[i],50,50);
  if(dist(mouseX,mouseY,x[i],y[i])<=50){
    continue;
  }  
  y[i]=y[i]+vy[i];//vy是速度
  if(y[i]>600) vy[i]=-vy[i];//碰到下方
  if(y[i]<0) vy[i]=-vy[i];//接到上方
  }
  fill(255,0,0);
  ellipse(mouseX,mouseY,50,50);
}

STEP 02-2


紅球碰到黃球 黃球就會消失
//Step02-2:mouse碰到球,可以得分
float []x={250,150,350,300};
float []y={0,50,80,100};
float []vy={3,2,2.5,4};
boolean [] dead={false,false,false,false};//false 0, true=1
void setup(){
  size(500,600);
}
void draw(){
  background(255);
  for(int i=0;i<4;i++){ 
    if(dist(mouseX,mouseY,x[i],y[i])<=50){
    dead[i]=true;//碰到,就死掉
  }  
  if(dead[i]==true)continue;//如果死掉了,continue 換下一個
  fill(255,255,0);
  ellipse(x[i],y[i],50,50);
  y[i]=y[i]+vy[i];//vy是速度
  if(y[i]>600) vy[i]=-vy[i];//碰到下方
  if(y[i]<0) vy[i]=-vy[i];//接到上方
  }
  fill(255,0,0);
  ellipse(mouseX,mouseY,50,50);
}

STEP 02-2(練習)



滑鼠按著背景變紅色 放開變綠色
//Step02-2 練習boolean變數 true成立 false不成立
boolean down;//按下去
void setup(){
  size(500,300);
}
void draw(){
  if(mousePressed)down=true;
  else down=false;
  print(down);
  if( down )background(255,0,0);//紅色
  else background(0,255,0);//綠色
}


2021年11月1日 星期一

week05

 


下載video



點選Loop
執行程式會出現一個影片
ctrl+k>data 執行的影片

import processing.video.*; //先裝好 Video Library
Movie movie;

void setup()
{
  size(640,480);
  movie = new Movie(this, "launch2.mp4");
  movie.loop();
}//要在我的硬碟的目錄裡面,開launch2.mp4檔
void draw()
{
  image(movie,0,0);
}
void movieEvent(Movie m)
{
  m.read();
}

用程式開啟視訊鏡頭
import processing.video.*;
Capture cam;
void setup(){
  size(640,480);
  cam = new Capture(this, Capture.list()[0]);
  cam.start();
}
void draw(){
  if( cam.available() ){
    cam.read();
  }
  image(cam,0,0);
}
//////////////////////////////
import processing.video.*;
Capture cam;
void setup(){
  size(640,480);
  cam = new Capture(this,640,480);
  cam.start();
}
void draw(){
  if( cam.available() ){
    cam.read();
  }
  image(cam,0,0);
}






2021年10月25日 星期一

week04

 

nt[][]c = {
 {0,0,0},
 {0,0,0},
 {0,0,0} };
 void setup(){
   size(300,300);
 }
 void draw(){
   for(int i=0;i<3;i++){
     for(int j=0;j<3;j++){
       if(c[i][j]==0)fill(128);////填滿灰色
       else fill(255,0,0);////填滿紅色
       rect(j*100,i*100,100,100);
     }    //j是x方向,i是y方向
   }
 }
int [][] c={
     {1,0,0}
     {1,0,0},
     {0,0,0} };
 void setup(){
   size(300,300);
 }
 void draw(){
   for(int i=0;i<3;i++){
     for(int j=0;j<3;j++){
       if(c[i][j]==0)fill(128);
       else fill(255,0,0);
       rect(j*100,i*100,100,100);
     }    //j是x方向,i是y方向
   }    //rect(i*100,j*100,100,100);交換話就會怪怪的 方向不一樣
 }
}

畫一個棋盤
int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0} };
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
    }
    for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
          int x=50+50*j, y=50+50*i;
          fill(255); ellipse(x,y,40,40);
        }
      }
    }
  }

int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,1,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},//畫出圍棋
  {1,1,0,0,0,0,0,0,0} };
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
    }
    for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
          int x=50+50*j, y=50+50*i;
          fill(255); //白色 ellipse(x,y,40,40);//畫圓
        }
      }
    }
  }


點到棋盤,出現圍棋
int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0} };
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
    }
    for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
          int x=50+50*j, y=50+50*i;
          fill(255); ellipse(x,y,40,40);
        }
      }
    }
  }
void mousePressed(){
  int j = (mouseX-50)/50;
  int i = (mouseY-50)/50;
  go[i][j]=1;
}

*x,y與i,j利用移項變號,無條件捨去5.99=>5
*點的位置要精準,否則會偏移


int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0} };
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
    }
    for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
          int x=50+50*j, y=50+50*i;
          fill(255); ellipse(x,y,40,40);
        }
      }
    }
  }
void mousePressed(){
  int j = (mouseX-25)/50;
  int i = (mouseY-25)/50;///讓落點位置更加準確!!!
  go[i][j]=1;
}
int [][]go = {
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,1,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0,0},
  {1,1,0,0,0,0,0,0,0} };
void setup(){
  size(500,500);
}
void draw(){
  background(253,236,180);
  for(int i=0;i<9;i++){
    line(50+50*i,50,50+50*i,450);
    line(50,50+50*i,450,50+50*i);
    }
    for(int i=0;i<9;i++){
      for(int j=0;j<9;j++){
        if(go[i][j]==1){
          int x=50+50*j, y=50+50*i;
          fill(255); ellipse(x,y,40,40);
        }else if(go[i][j]==2){                                                      
          int x=50+50*j, y=50+50*i;                               go[i][j]=1--->白棋          
          fill(0);//黑色ellipse(x,y,40,40);                         go[i][j]=2--->黑棋
        }///1:白,2:黑,0:沒有棋                                        go[i][j]=0--->消除
      }
    }
  }
void mousePressed(){
  int j = (mouseX-25)/50;
  int i = (mouseY-25)/50;
  if(mouseButton==LEFT)go[i][j]=1;///滑鼠左鍵:白棋
  if(mouseButton==RIGHT)go[i][j]=2;///滑鼠右鍵:黑棋
  if(mouseButton==CENTER)go[i][j]=0;///滑鼠中鍵:消除
}


void setup(){
  size(500,500);
}
void draw(){
  for(float a=0;a<360;a++){
    float x =250+250*cos( radians(a) );
    float y =250+250*sin( radians(a) );
    ellipse(x,y,4,4);
  }
}
*圓心頂點為(250,250)



滑鼠移動調整園的大小
void setup(){
  size(500,500);
}
void draw(){
  background(128);
  for(float a=0;a<360;a+=1){
    float x =250+mouseX*cos( radians(a) );
    float y =250+mouseY*sin( radians(a) );
    ellipse(x,y,mouseX,mouseY);
  }
}

(延續上一個實作)
void setup(){
  size(500,500);
}
void draw(){
  background(255);
  noFill();///讓源的收尾更好看
  for(float a=0;a<360;a+=1){
    float x =250+mouseX*cos( radians(a) );
    float y =250+mouseY*sin( radians(a) );
    ellipse(x,y,mouseX,mouseY);
  }
}



(延續上一個實作)
void setup(){
  size(500,500);
}
void draw(){
  background(255);
  noFill();
  stroke(mouseX,mouseY,255);//運用滑鼠移動調整顏色
  for(float a=0;a<360;a+=1){
    float x =250+mouseX*cos( radians(a) );
    float y =250+mouseY*sin( radians(a) );
    ellipse(x,y,mouseX,mouseY);
  }
}

void setup(){
  size(500,500);
}
float w=30;
float r=0,g=255,b=0;
void draw(){
  stroke(r,g,b); noFill();
  r+=random(3); if(r>255)r=0;
  g+=random(3); if(g>255)g=0;
  b+=random(3); if(b>255)b=0;
    ellipse(mouseX,mouseY,w,w);
    w+=0.5;
    if(w>100) w=30;
}






2021年10月4日 星期一

week2

 

void setup(){
  size(500,500);//視窗大小
}
void draw(){
  if(mousePressed)background(255,0,0);///滑鼠按一下變紅色
  else background(0,255,0);///放開變綠色
}
void setup(){
  size(500,500);
}
void draw(){
  if(mousePressed) line(mouseX,mouseY,0,0);
}                                                             滑鼠座標起始點



void setup(){
  size(500,500);
}
void draw(){
  if(mousePressed) line(mouseX,mouseY,pmouseX,pmouseY);
}                                                               ////可移動的滑鼠位置

點選左上的顏色可以挑筆刷顏色
void setup(){
  size(500,500);
  fill(255,0,0);rect(0,0,100,100);//左上方形紅色
   方塊顏色填滿       方塊大小
  fill(0,255,0);rect(0,100,100,100);//左上方形綠色
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100) stroke(255,0,0);//紅色
      else if(mouseY<200) stroke(0,255,0);//綠色
    }else line(mouseX,mouseY,pmouseX,pmouseY);//畫線
  }
}

改變筆刷粗細
void setup(){
  size(500,500);
  rect(0,0,100,100);ellipse(50,50,8,8);//8的圓
  rect(0,100,100,100);ellipse(50,150,4,4);//4的圓
}
void draw(){
  if(mousePressed){
    if(mouseX<100){
      if(mouseY<100) strokeWeight(8);//粗
      else if(mouseY<200) strokeWeight(4);//細
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}


*筆刷大小
void setup(){
  size(500,500);
  for(int i=1;i<8;i++){
    rect(0,i*50,50,50);//(位置座標,格子大小50*50)
    ellipse(25,25+i*50,i,i);//8的圓,i=筆刷大小,畫圓形筆刷
  }
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
       for(int i=1;i<8;i++){
         if(mouseY>i*50 && mouseY<i*50+50){
           strokeWeight(i);
         }
       }
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}
 筆刷大小
void setup(){
  size(500,500);
  rect(0,50,50,50);ellipse(25,25+50,1,1);                        ///rect(0,i*50,50,50);
  rect(0,100,50,50);ellipse(25,25+100,2,2);                    ///ellipse(25,25+i*50,i,i);
  rect(0,150,50,50);ellipse(25,25+150,3,3);
  rect(0,200,50,50);ellipse(25,25+200,4,4);
  rect(0,250,50,50);ellipse(25,25+250,5,5);
  rect(0,300,50,50);ellipse(25,25+300,6,6);
  rect(0,350,50,50);ellipse(25,25+350,7,7);
  rect(0,400,50,50);ellipse(25,25+400,8,8);//筆刷大小
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
      if(mouseY>1*50 && mouseY<1*50+50) strokeWeight(1);
      if(mouseY>2*50 && mouseY<2*50+50) strokeWeight(2);
      if(mouseY>3*50 && mouseY<3*50+50) strokeWeight(3);
      if(mouseY>4*50 && mouseY<4*50+50) strokeWeight(4);
      if(mouseY>5*50 && mouseY<5*50+50) strokeWeight(5);
      if(mouseY>6*50 && mouseY<6*50+50) strokeWeight(6);
      if(mouseY>7*50 && mouseY<7*50+50) strokeWeight(7);
      if(mouseY>8*50 && mouseY<8*50+50) strokeWeight(8);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}


  新增調色盤
void setup(){
  size(500,500);
  fill(#FF0505);rect(0,50,50,50);
  fill(#FF9305);rect(0,100,50,50);
  fill(#FAFF05);rect(0,150,50,50);
  fill(#08CB20);rect(0,200,50,50);
  fill(#608BDE);rect(0,250,50,50);
  fill(#024AD6);rect(0,300,50,50);
  fill(#A821CE);rect(0,350,50,50);
  fill(#F775BD);rect(0,400,50,50);
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
      if(mouseY>1*50 && mouseY<1*50+50) stroke(#FF0505);
      if(mouseY>2*50 && mouseY<2*50+50) stroke(#FF9305);
      if(mouseY>3*50 && mouseY<3*50+50) stroke(#FAFF05);
      if(mouseY>4*50 && mouseY<4*50+50) stroke(#08CB20);
      if(mouseY>5*50 && mouseY<5*50+50) stroke(#608BDE);
      if(mouseY>6*50 && mouseY<6*50+50) stroke(#024AD6);
      if(mouseY>7*50 && mouseY<7*50+50) stroke(#A821CE);
      if(mouseY>8*50 && mouseY<8*50+50) stroke(#F775BD);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}
///顏色選擇器---->複製代碼

    筆刷和顏色
void setup(){
  size(500,500);
  rect(0,50,50,50);ellipse(25,25+50,1,1);                        
  rect(0,100,50,50);ellipse(25,25+100,2,2);                    
  rect(0,150,50,50);ellipse(25,25+150,3,3);
  rect(0,200,50,50);ellipse(25,25+200,4,4);
  rect(0,250,50,50);ellipse(25,25+250,5,5);
  rect(0,300,50,50);ellipse(25,25+300,6,6);
  rect(0,350,50,50);ellipse(25,25+350,7,7);
  rect(0,400,50,50);ellipse(25,25+400,8,8);
  fill(#FF0505);rect(450,50,50,50);   ///方塊左上位置座標(移到右方)
  fill(#FF9305);rect(450,100,50,50);
  fill(#FAFF05);rect(450,150,50,50);
  fill(#08CB20);rect(450,200,50,50);
  fill(#608BDE);rect(450,250,50,50);
  fill(#024AD6);rect(450,300,50,50);
  fill(#A821CE);rect(450,350,50,50);
  fill(#F775BD);rect(450,400,50,50);
}
void draw(){
  if(mousePressed){
    if(mouseX<50){
      if(mouseY>1*50 && mouseY<1*50+50) strokeWeight(1);
      if(mouseY>2*50 && mouseY<2*50+50) strokeWeight(2);
      if(mouseY>3*50 && mouseY<3*50+50) strokeWeight(3);
      if(mouseY>4*50 && mouseY<4*50+50) strokeWeight(4);
      if(mouseY>5*50 && mouseY<5*50+50) strokeWeight(5);
      if(mouseY>6*50 && mouseY<6*50+50) strokeWeight(6);
      if(mouseY>7*50 && mouseY<7*50+50) strokeWeight(7);
      if(mouseY>8*50 && mouseY<8*50+50) strokeWeight(8);
    }else if(mouseX>450){
      if(mouseY>1*50 && mouseY<1*50+50) stroke(#FF0505);
      if(mouseY>2*50 && mouseY<2*50+50) stroke(#FF9305);
      if(mouseY>3*50 && mouseY<3*50+50) stroke(#FAFF05);
      if(mouseY>4*50 && mouseY<4*50+50) stroke(#08CB20);
      if(mouseY>5*50 && mouseY<5*50+50) stroke(#608BDE);
      if(mouseY>6*50 && mouseY<6*50+50) stroke(#024AD6);
      if(mouseY>7*50 && mouseY<7*50+50) stroke(#A821CE);
      if(mouseY>8*50 && mouseY<8*50+50) stroke(#F775BD);
    }else line(mouseX,mouseY,pmouseX,pmouseY);
  }
}