顯示具有 07160564_謝宗翰 標籤的文章。 顯示所有文章
顯示具有 07160564_謝宗翰 標籤的文章。 顯示所有文章

2020年12月21日 星期一

翰翰日記13

 PVector user;

void setup()

{

size(600,600);

user=new PVector(10,20);

}

void draw()

{

background(255);

ellipse(user.x, user.y,20,20);

}

這個新的程式碼可以畫一個小圓....
PVector user;
PVector target;
void setup()
{
size(600,400);
user=new PVector(100,300);
target=new PVector(100,300);
}
void draw()
{
background(255);
line(user.x, user.y, target.x,target.y);
textSize(40);
fill(255,0,0);text("target",target.x,target.y);
fill(255);
ellipse(user.x, user.y,20,20);
}
void mouseDragged()
{
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased()
{

}
接下來老師教我們做憤怒鳥
PVector user;
PVector target,v=null;
void setup()
{
size(600,400);
user=new PVector(100,300);
target=new PVector(100,300);
}
void draw()
{
background(255);
line(user.x, user.y, target.x,target.y);
textSize(40);
fill(255,0,0);text("target",target.x,target.y);
fill(255);
ellipse(user.x, user.y,20,20);
if(v!=null)user.add(v);
}
void mouseDragged()
{
user.x=mouseX;
user.y=mouseY;
}
void mouseReleased()
{
PVector diff=PVector.sub(target,user);
v=diff.div(10);
}
這段程式碼的球會飛,但還停不下來
接下來用arduino來寫程式碼
void setup()
{
  pinMode(2,INPUT_PULLUP);
  Serial.begin(9600);
  }
  void loop()
  {
    int x =analogRead(A0);
    int y =analogRead(A1);
    int sw=digitalRead(2);
    Serial.write(x);
    Serial.write('+');
    Serial.write(y);
    Serial.write('+');
    Serial.write(sw);
    Serial.write(' ');
    delay(20);
    }
然後我也不知道這是甚麼咚咚,反正就很快

然後
p語言:
import processing.serial.*;
Serial myPort;
void setup()
{
size(256,256);
myPort = new Serial(this, "COM4",9600);
}
int ballX=0,ballY=0;
void draw()
{
if(myPort.available()>=3)
  {
  int x =myPort.read();
  int y =myPort.read();
  int sw =myPort.read();
  ballX=x;
  ballY=y;
  }
  ellipse(ballX, ballY, 10,10);
}
arduino:
void setup()
{
  pinMode(2,INPUT_PULLUP);
  Serial.begin(9600);
  }
  void loop()
  {
    int x =analogRead(A0);
    int y =analogRead(A1);
    int sw=digitalRead(2);
    Serial.write(x/4);
    Serial.write(y/4);
    Serial.write(sw);
    delay(20);
    }

就會變醬



反正最後就是用搖桿去控制憤怒鳥小球球












2020年12月14日 星期一

翰翰日記12

 一開始先教用旋鈕改變聲音

void setup()

{

  pinMode(13,OUTPUT);

  pinMode(8,OUTPUT);

  }

  void loop()

  {

    int now = analogRead(A0);

    tone(8,now);

    }

這個轉旋鈕會依序亮燈
void setup()
{
  for(int i=2;i<=13;i++)
  pinMode(i,OUTPUT);
  }
  void loop()
  {
    int now = analogRead(A0);
    int level = now/(512/13);
    for(int i=2;i<=13;i++)
      {
        if(i<level)digitalWrite(i,HIGH);
        else digitalWrite(i,LOW);
        }
    }
這個是改程式碼讓他發出英文字
void setup()
{
  for(int i=2;i<=13;i++)
  {
  pinMode(i,OUTPUT);
  }
  Serial.begin(9600);
  }
  void loop()
  {
    int now = analogRead(A0);
    int level = now/(1024/13);
    for(int i=2;i<=13;i++)
      {
        if(i<level)digitalWrite(i,HIGH);
        else digitalWrite(i,LOW);
        }
        Serial.write(('A'+level));
        delay(100);
    }

再來這個是processing上的程式碼
import processing.serial.*;
Serial myPort;
void setup()
{
size(700,100);
myPort=new Serial(this,"COM4",9600);
}
int level=0;
void draw()
{
background(255);
fill(255,0,0);
rect(0,0,level*50,100);
if(myPort.available()>0)
  {
  int now=myPort.read();
  if(now=='A')level=0;
  if(now=='B')level=1;
  if(now=='C')level=2;
  if(now=='D')level=3;
  if(now=='E')level=4;
  if(now=='F')level=5;
  if(now=='G')level=6;
  if(now=='H')level=7;
  if(now=='I')level=8;
  if(now=='J')level=9;
  }
}
這個可以用旋鈕控制紅色的那個部分
這也是processing的
import processing.serial.*;
Serial myPort;
void setup()
{
size(700,100);
myPort=new Serial(this,"COM4",9600);
}
int level=0;
void draw()
{
background(255);
fill(255,0,0);
rect(0,0,level*3,100);
if(myPort.available()>0)
  {
  int now=myPort.read();
  level =now;
  }
}
這個可以讓紅色的那個進度條移動得很滑順












2020年12月7日 星期一

翰翰日記11

這禮拜用器材上課(joystick)
void setup()
{
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  }
  void loop()
  {
    if(digitalRead(2)==LOW)tone(8,572,100);
    else noTone(8);
    }
這段程式碼可以按joystick讓maker板發出聲音

void setup()
{
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  }
  int state=0;
  void loop()
  {
    if(digitalRead(2)==LOW && state==0)
    {
      state=1;
      Serial.write("1");
      }
      if(digitalRead(2)==HIGH && state==1)
      {
        state=0;
        Serial.write("0");
        }
        delay(100);
    }
這段是在寫按下後送0或1

import processing.serial.*;
Serial myPort;
void setup(){
size(300,200);
myPort=new Serial(this, "COM4",9600);
}
int button=0;
void draw()
{
if(myPort.available()>0){
  int now=myPort.read();
  println("現在你讀的是:"+now);
  if(now=='1')button=1;
  else button=0;
}
if(button==1)background(255,0,0);
else background(255);
}
現在這隻程式碼是按一下板子就有數字跑出來


import hypermedia.net.*;
UDP udp;
void setup()
{
size(300,200);
udp=new UDP(this, 6000);
udp.send("hello teacher","120.125.70.53",6100);
}
void draw()
{}
void mousePressed()
{
udp.send("mousePressed","120.125.70.53",6100);
}
這個是網路程式可以給其他電腦發訊息





2020年11月30日 星期一

翰翰日記10

 #define Do 523

#define Mi 659

#define So 784

void setup()

{

  pinMode(2,INPUT_PULLUP);

  pinMode(8,OUTPUT);

  tone(8,Do);

  delay(100);

  tone(8,Mi);

  delay(100);

  tone(8,So);

  delay(100);

  noTone(8);

  }

  void loop()

  {

    if(digitalRead(2)==LOW)tone(8,Mi,100);

    }

按板子上的按鈕會發出聲音

arduino:

#define Do 523
#define Mi 659
#define So 784
void setup()
{
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(100);
  tone(8,Mi);
  delay(100);
  tone(8,So);
  delay(100);
  noTone(8);
  }
  void loop()
  {
    while(Serial.available()>0)
    {
      Serial.read();
      tone(8,So, 100);
      }
    //if(digitalRead(2)==LOW)tone(8,Mi,100);
    }

processing:

import processing.serial.*;
Serial myPort;
void setup(){
size(200,200);
myPort = new Serial(this,"COM4",9600);
}
void draw()
{}
void mousePressed()
{
myPort.write("1");
}
這段程式碼是利用電腦控制小電腦,按一下processing的視窗就會發出叫聲
arduino:

#define Do 523
#define Mi 659
#define So 784
void setup()
{
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(100);
  tone(8,Mi);
  delay(100);
  tone(8,So);
  delay(100);
  noTone(8);
  }
  void loop()
  {
    while(Serial.available()>0)
    {
      int now=Serial.read();
      if(now=='1')tone(8,Do, 100);
      if(now=='3')tone(8,Mi,100);
      if(now=='5')tone(8,So,100);
      }
    //if(digitalRead(2)==LOW)tone(8,Mi,100);
    }

processing:

import processing.serial.*;
Serial myPort;
void setup(){
size(200,200);
myPort = new Serial(this,"COM4",9600);
}
void draw()
{}
void keyPressed()
{
if(key=='1')myPort.write("1");
if(key=='3')myPort.write("3");
if(key=='5')myPort.write("5");
}
void mousePressed()
{
myPort.write("1");
}
這兩段可以用鍵盤的1、3、5控制do mi so,跟滑鼠的do
arduino:

#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 880
#define Ti 988
void setup()
{
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  pinMode(8,OUTPUT);
  tone(8,Do);
  delay(100);
  tone(8,Mi);
  delay(100);
  tone(8,So);
  delay(100);
  noTone(8);
  }
  void loop()
  {
    while(Serial.available()>0)
    {
      int now=Serial.read();
      if(now=='1')tone(8,Do);
      if(now=='2')tone(8,Re);
      if(now=='3')tone(8,Mi);
      if(now=='4')tone(8,Fa);
      if(now=='5')tone(8,So);
      if(now=='6')tone(8,La);
      if(now=='7')tone(8,Ti);
      if(now=='0') noTone(8);
      
      }
    //if(digitalRead(2)==LOW)tone(8,Mi,100);
    }


processing:

import processing.serial.*;
Serial myPort;
void setup(){
size(200,200);
myPort = new Serial(this,"COM4",9600);
}
void draw()
{}
void keyPressed()
{
if(key=='1')myPort.write("1");
if(key=='2')myPort.write("2");
if(key=='3')myPort.write("3");
if(key=='4')myPort.write("4");
if(key=='5')myPort.write("5");
if(key=='6')myPort.write("6");
if(key=='7')myPort.write("7");
}
void keyReleased()
{
myPort.write("0");
}
void mousePressed()
{
myPort.write("1");
}

這段程式碼就是真正的鋼琴了,音階的擴充要去網路上找蜂鳴器的聲音頻率,再把頻率寫到arduino裡就可以了









2020年11月23日 星期一

翰翰日記9

 今天是期中作品展示

老師開始教紫色那塊板子撥音樂

#define Do 523

#define Re 587

#define Mi 659

#define Fa 698

#define So 784

int melody[]={Do,Re,Mi,Do,Re,Mi,Re,So,So,Do};

void setup() {

  // put your setup code here, to run once:

delay(1000);

pinMode(8, OUTPUT);

for(int i=0;i<10;i++)

  {

   tone(8, melody[i],100);

   delay(130); 

    }

}


void loop() {

  // put your main code here, to run repeatedly:


}
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
#define La 880
#define Si 988
#define Dox 1046
int melody[]={Do,Re,Mi,Do,Re,Mi,Re,So,So,Dox,Si,La,Si,La,So,Mi,So};
void setup() {
  // put your setup code here, to run once:
delay(1000);
pinMode(8, OUTPUT);
for(int i=0;i<17;i++)
  {
   tone(8, melody[i],100);
   delay(200); 
    }
}

void loop() {
  // put your main code here, to run repeatedly:

}//你好不好

2020年11月2日 星期一

翰翰日記8

 一開始老師教pixels可以拿到圖片的座標


PImage img;
void setup()
{
size(300,300);
img=loadImage("panda.jpg");
}
void draw()
{
image(img,0,0);
}
void mouseMoved()
{
loadPixels();//取得畫布
for(int i=0; i<width*height;i++)//迴圈
    {
    if(pixels[i]==#ffffff)print("1");//取得pixels
    else print("0");
    }

}



2020年10月26日 星期一

翰翰日記7

第七周

size(500,500);

for(int angle=0;angle<360;angle+=30)

  {

  float angle2 = radians(angle);

  float x = 100+cos(angle2)*50;

  float y = 100+sin(angle2)*50;

  ellipse(x,y,2,2);

  }

這個直接用cos,sin的公式去畫圓

size(500,500);
beginShape();
for(int angle=0;angle<360;angle+=120)
  {
  float angle2 = radians(angle);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
上面那個120度的角度是以內角幾度畫的例如說90度就是正方形
void setup()
{
size(500,500);
}
void draw()
{
beginShape();
for(int angle=0;angle<360;angle+=120)
  {
  float angle2 = radians(angle+mouseX);
  float x = 100+cos(angle2)*50;
  float y = 100+sin(angle2)*50;
  vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}
加入setup draw就可以畫出圓了
void setup()
{
size(500,500);
}
void draw()
{
  background(255);
beginShape();
for(int angle=0;angle<360;angle+=120)
  {
  float angle2 = radians(angle+mouseX);
  float x = mouseX+cos(angle2)*50;
  float y = mouseY+sin(angle2)*50;
  vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}
這樣寫可以讓三角形跟著滑鼠跑
把background(255);註解掉就會醬
void setup()
{
size(500,500);
}
void draw()
{
  background(255);
beginShape();
for(int angle=0;angle<360;angle+=120)
  {
  float angle2 = radians(angle+frameCount);
  float x = mouseX+cos(angle2)*100;
  float y = mouseY+sin(angle2)*100;
  vertex(x,y);//ellipse(x,y,2,2);
  }
  endShape(CLOSE);
}
變大
float fruitX=150,fruitY=0;
float kidX=150,kidY=450;
int score=0;
void setup()
{
size(300,500);
}
void draw()
{
background(255);
rect(kidX,kidY,50,80);
kidX=mouseX;
ellipse(fruitX, fruitY, 60,80);
fruitY++;
if(fruitY>kidY)
  {
    if(kidX<fruitX&&fruitX < kidX+80)
      {
      score+=10;
      fruitY=0; fruitX=random(50,450);
      
      }else
        {
        fruitY=0; fruitX=random(50,450);
        }
  }
}
老師特別寫了一個接東西的程式碼

//float fruitX=150,fruitY=0;
float [] fruitX=new float[10];
float [] fruitY=new float[10];
float kidX=150,kidY=450;
int score=0;
void setup()
{
size(500,500);
for(int i=0;i<10;i++)
  {
  fruitX[i]=random(50,450);
  fruitY[i]=-i*100;
  }
}
void draw()
{
background(255);
rect(kidX,kidY,50,80);
kidX=mouseX;
for(int i=0;i<10;i++){
ellipse(fruitX[i], fruitY[i], 60,80);
fruitY[i]++;
if(fruitY[i]>kidY)
  {
    if(kidX<fruitX[i]&&fruitX[i] < kidX+80)
      {
      score+=10;
      fruitY[i]=0; fruitX[i]=random(50,450);
      
      }else
        {
        fruitY[i]=0; fruitX[i]=random(50,450);
        }
  }
}
}
這個是加強版的水果隨機掉落
版











 

2020年10月19日 星期一

翰翰week06

 第六周

一開始老師先教文字如何放大


fill(255,0,0);
textSize(40);
text("Hello",30,30);
size(500,400);
rect( 100,100,200,100);
fill(255,0,0);
textSize(40);
textAlign(LEFT,TOP);
text("Hello",100,100);
這些是為了對齊方塊跟字形的位置
size(800,300);
fill(255,0,0);
PFont font1 = createFont("Times New Roman",30);
textFont(font1);
text("中文vsEnglish",30,30);
PFont font2 = createFont("標楷體",30);
textFont(font2);
text("中文vsEnglish",30,130);
這段也是對齊
int[][]A={ {1,1,1},
           {0,1,0},
           {0,1,1},
           {1,1,1}};
size(300,400);
for(int i=0; i<4;i++)
{
for(int j=0;j<3;j++){
if(A[i][j]==0) fill(0);
else fill(255,0,0);
rect(j*100,i*100,100,100);
}
}
利用陣列來塗顏色

int[][]A={ {2,2,2,2},
           {0,1,1,1},
           {0,1,1,1},
           {2,2,2,2}};
           PImage bird, pig;
void setup()
{
size(400,400);
bird=loadImage("bird.png");
pig=loadImage("pig.jpg");
}
void draw()
{
background(0);
for(int i=0;i<4;i++)
    {
    for(int j=0;j<4;j++){
    if(A[i][j]==1)image(bird,j*100,i*100,100,100);
    if(A[i][j]==2)image(pig, j*100,i*100,100,100);
    }  
  }
}
可以換成圖片
int[][]A={ {2,2,2,2},
           {0,1,1,1},
           {0,1,1,1},
           {2,2,2,2}};
           PImage bird, pig;
           void mousePressed()
           {
           int i=int(mouseY/100);
           int j=int(mouseX/100);
           A[i][j]=0;
           }
void setup()
{
size(400,400);
bird=loadImage("bird.png");
pig=loadImage("pig.jpg");
}
void draw()
{
background(0);
for(int i=0;i<4;i++)
    {
    for(int j=0;j<4;j++){
    if(A[i][j]==1)image(bird,j*100,i*100,100,100);
    if(A[i][j]==2)image(pig, j*100,i*100,100,100);
    }  
  }
}
這段代表滑鼠點一下圖片就會消失











2020年10月12日 星期一

翰翰week05

 week05

PImage img;
float x=100, y=200;
void setup()
{
size(500,500);
img = loadImage("fruit.jpg");
}
void draw()
{
image(img, x, y, 100,100);
}
一開始老師複習上禮拜叫出圖片的練習

PImage img;
float x=100, y=500,vx=3,vy=-30;
void setup()
{
size(500,500);
img = loadImage("fruit.jpg");
}
void draw()
{
image(img, x, y, 100,100);
x+=vx;
y+=vy;
vy+=0.98;
}
依照牛頓運動定律運動的水果
PImage img;
float x=100, y=500,vx=3,vy=-30;
void setup()
{
size(500,500);
img = loadImage("fruit.jpg");
}
void draw()
{
image(img, x, y, 100,100);
x+=vx;
y+=vy;
vy+=0.98;
if(y>500)
{
if(frameCount%2==0)
{
x=random(250);y=500; vx=random(2,3);vy=-random(28,32);
}else
{
x=random(250,500);y=500; vx=-random(2,3); vy=-random(28,32);
}
}
}
幫水果的跳動改位置
PImage img;
float x=100, y=500,vx=3,vy=-30;
int fruitDie=0;
void setup()
{
size(500,500);
img = loadImage("fruit.jpg");
}
void draw()
{
  background(0);
image(img, x, y, 100,100);
x+=vx;
y+=vy;
vy+=0.98;
if(y>500)fruitDie=1;
if(x<mouseX&& mouseX<x+100&&y<mouseY&&mouseY<y+100)fruitDie=1;
stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);
if(fruitDie==1){
if(frameCount%2==0)
{
x=random(250);y=500; vx=random(2,3);vy=-random(28,32);
}else
{
x=random(250,500);y=500; vx=-random(2,3); vy=-random(28,32);
}
fruitDie=0;
}
}
這段是把背景變黑殘影變不見、還有畫白色的刀刃碰到水果即死
import processing.sound.*;
SoundFile sound1;
SoundFile sound2;
void setup()
{
size(300,300);
sound1=new SoundFile(this, "swords.wav");
sound2=new SoundFile(this, "wind.wav");
}
void draw()
{

}
void mousePressed()
{
sound1.play();
}
理論上外掛程式設定好後這串程式碼就可以播放音樂
接下來
import ddf.minim.*;
Minim minim;
AudioPlayer player1;
AudioPlayer player2;
PImage img;
float x=100, y=500,vx=3,vy=-30;
int fruitDie=0;
void setup()
{
size(500,500);
img = loadImage("fruit.jpg");
minim=newMinim(this);
player1=minim.loadFile("wind.wav");
player2=minim.loadFile("swords.wav");
player1.loop();
}
void draw()
{
  background(0);
image(img, x, y, 100,100);
x+=vx;
y+=vy;
vy+=0.98;
if(y>500)fruitDie=1;
player2.rewind();
player2.play();
if(x<mouseX&& mouseX<x+100&&y<mouseY&&mouseY<y+100)fruitDie=1;
stroke(255);line(mouseX,mouseY,pmouseX,pmouseY);
if(fruitDie==1){
if(frameCount%2==0)
{
x=random(250);y=500; vx=random(2,3);vy=-random(28,32);
}else
{
x=random(250,500);y=500; vx=-random(2,3); vy=-random(28,32);
}
fruitDie=0;
}
}
理論上這段程式碼就是整個遊戲的流程了







2020年10月5日 星期一

翰翰week04

 一開始老師先把一張圖檔直接拉到processing裡去,再來寫上程式碼就可以把圖檔叫出來了

PImage img;
size(440,440);
img= loadImage("dog.jpg");
image(img,0,0);

PImage img;
PImage img2;
size(440,440);
img= loadImage("dog.jpg");
img2=loadImage("dog1.jpg");

image(img,0,0);
image(img2,100,100,54,49);
這段程式碼可以同時塞兩張圖片
PImage img;
PImage img2;
void setup(){
size(440,440);
img= loadImage("dog.jpg");
img2=loadImage("dog1.jpg");
}
void draw(){
image(img,0,0);
image(img2,mouseX-54/2,mouseY-49/2,54,49);
}
這段程式碼可以讓圖片跟著滑鼠移動
PImage img;
PImage img2;
void setup(){
size(400,244);
img= loadImage("longbackgrounp.gif");
img2=loadImage("mario.png");
}
int x=0;
void draw(){
  if(mouseX>300)x--;
image(img,x,0);
image(img2,mouseX-220/2,mouseY-337/2);
}
上面那個代表超出多少就往左抽多少背景圖
float x=250, y=200;
float vx=1.0, vy=2.5;
void setup()
{size(500,400);}
void draw()
{ellipse(x,y, 10, 10);
x+=vx;
y+=vy;
if(x>500 || x<0)vx=-vx;
if(y>400 || y<0)vy=-vy;
}
這隻程式可以模仿牛頓運動定律
float x=250, y=200;
float vx=0, vy=0;
void setup()
{size(500,400);}
void draw()
{
  if(mousePressed)line(mouseX,mouseY,x,y);
  ellipse(x,y, 10, 10);
  ellipse(mouseX,mouseY,10,10);
x+=vx;
y+=vy;
if(x>500 || x<0)vx=-vx;
if(y>400 || y<0)vy=-vy;
}
void mouseReleased()
{
vx=x-mouseX;
vy=y-mouseY;
}
這支我不知道怎麼講,反正自己複製貼上自己看
float x=250, y=200;
float vx=1.3, vy=-14;
void setup()
{size(500,400);}
void draw()
{
  background(255);
  ellipse(x,y, 10, 10);
x+=vx;
y+=vy;
vy+=0.98;
if(x>500 || x<0)vx=-vx*0.85;
if(y>400 || y<0)vy=-vy*0.85;
}
這支程式也可以模仿運動定律















2020年9月21日 星期一

翰翰week02

 老師一開始在複習上禮拜的東西

再來老師教按一下變顏色的程式碼

void setup(){
size(500,500);
}
void draw(){
if(mousePressed)background(255,0,255);
else background(0,255,0);
}



可以畫畫的畫布
void setup()
{
  size(500, 500);
}
void draw()
{
  if (mousePressed) {
    line(mouseX, mouseY, pmouseX, pmouseY);
  }
}

先劃出一個調色盤
下面程式碼補完後就可用不同顏色畫畫了
void setup()
{
  size(600, 500);
}
void draw()
{
  fill(#ff0000);rect(0,0,100,100);
  fill(#ffff00);rect(0,100,100,100);
  fill(#00ff00);rect(0,200,100,100);
  fill(#0000ff);rect(0,300,100,100);
  fill(#ff00ff);rect(0,400,100,100);
  if(mousePressed && mouseX <100){
    if(mouseY<100)stroke(#ff0000);
    else if(mouseY<200)stroke(#ffff00);
    else if(mouseY<300)stroke(#00ff00);
    else if(mouseY<400)stroke(#0000ff);
    else if(mouseY<500)stroke(#ff00ff);
}else if (mousePressed && mouseX >100) {
    line(mouseX, mouseY, pmouseX, pmouseY);
  }
}

老師從頭開始教小畫家但還沒有方格
void setup()
{
  size(600, 500);
}
void draw()
{
  line(100,0, 100,500);
  if(mousePressed && mouseX <100){
    if(mouseY<100)stroke(#ff0000);
    else if(mouseY<200)stroke(#ffff00);
    else if(mouseY<300)stroke(#00ff00);
    else if(mouseY<400)stroke(#0000ff);
    else if(mouseY<500)stroke(#ff00ff);
}else if (mousePressed && mouseX >100) {
    line(mouseX, mouseY, pmouseX, pmouseY);
  }
}

再來是可以存檔的程式碼
void setup()
{
  size(600, 500);
  fill(#ff0000);rect(0,0,100,100);
  fill(#ffff00);rect(0,100,100,100);
  fill(#00ff00);rect(0,200,100,100);
  strokeWeight(5);
}
void keyPressed()
{
save("ya.png");
}
void draw()
{
  if(mousePressed && mouseX <100){
    if(mouseY<100)stroke(#ff0000);
    else if(mouseY<200)stroke(#ffff00);
    else if(mouseY<300)stroke(#00ff00);
}else if (mousePressed && mouseX >100) {
    line(mouseX, mouseY, pmouseX, pmouseY);
  }
}