CODE
void setup(){
size(300,300);
}
void draw(){
background(135 ,206 ,250); //สีพื้นหลัง
drawMickey(a); //User defined function รูปแบบ function with parameter //ตัวแปร a ของฟังก์ชันdrawMickey()
a = a + 1;
}
void drawMickey(int y){ //ตัวแปร y ของฟังก์ชันdrawMickey()
int b = 100; //Local variable
//ตัวอักษรMICKEY
strokeWeight(10);
stroke(255 ,0 ,0);
line(50,210+y-b,50,250+y-b);
line(50,210+y-b,65,225+y-b);
line(65,225+y-b,80,210+y-b);
line(80,210+y-b,80,250+y-b);
line(100,210+y-b,100,250+y-b);
line(94,210+y-b,106,210+y-b);
line(94,250+y-b,106,250+y-b);
line(120,210+y-b,120,250+y-b);
line(120,210+y-b,140,210+y-b);
line(120,250+y-b,140,250+y-b);
line(155,210+y-b,155,250+y-b);
line(176,210+y-b,155,230+y-b);
line(155,230+y-b,176,250+y-b);
line(191,210+y-b,191,250+y-b);
line(191,210+y-b,211,210+y-b);
line(191,230+y-b,211,230+y-b);
line(191,250+y-b,211,250+y-b);
line(226,210+y-b,239,230+y-b);
line(239,230+y-b,239,250+y-b);
line(239,230+y-b,252,210+y-b);
//หู
noStroke();
fill(0);
ellipse(115,80+y-b,50,50);
ellipse(185,80+y-b,50,50);
//หัว
fill(0);
ellipse(150,127+y-b,92.5,96);
//หน้าส่วนบน
fill(255 ,239 ,219);
ellipse(135,120+y-b,40,60);
ellipse(165,120+y-b,40,60);
//ตาขาว
fill(255,255,255);
ellipse(135,125+y-b,20,40);
ellipse(165,125+y-b,20,40);
//ตาดำ
fill(0);
ellipse(140,130+y-b,10,20);
ellipse(160,130+y-b,10,20);
// หน้าส่วนล่าง
fill(255 ,239 ,219);
ellipse(150,155+y-b,75,40);
//จมูก
fill(0);
ellipse(150,140+y-b,20,15);
//ปาก
fill(255 ,106 ,106);
ellipse(150,160+y-b,30,10);
}
จากโค้ด Global variable คือ ตัวแปร a ซึ่งสามารถเรียกนำไปใช้ได้ทุกฟังก์ชัน
(จาก a = a + 1; จะทำให้ภาพมีการเปลี่ยนตำแหน่ง ซึ่งเป็นพื้นฐานของการทำAnimation)
Local variable คือ ตัวแปร b ซึ่งสามารถเรียกนำไปใช้ได้แค่ในฟังก์ชันที่มีตัวแปร b เท่านั้น
(ถ้ามีการเปลี่ยนค่าตัวแปรb จะทำให้ตำแหน่งเปลี่ยนตามค่าของตัวแปร)
User defined function คือ drawMickey() ซึ่งเป็นฟังก์ชันที่สร้างขึ้นมาเอง
ตัวแปร y จะมีค่าเท่ากับตัวแปร a เนื่องจาก drawMickey(a) เป็นฟังก์ชันที่สร้างขึ้น และ drawMickey(int y) เป็นการเรียกใช้ฟังก์ชันที่สร้างขึ้น ทำให้ค่าตัวแปรใน() มีค่าเท่ากัน
(การเปลี่ยนค่าตัวแปร y ทำให้MICKEYเคลื่อนที่ลง)
ถ้า background() อยู่ในฟังก์ชัน setup() จะทำให้ภาพMICKEYซ้อนกัน ดังรูป
int a = 0; //Global variable
void setup(){
size(300,300);
}
void draw(){
background(135 ,206 ,250); //สีพื้นหลัง
drawMickey(a); //User defined function รูปแบบ function with parameter //ตัวแปร a ของฟังก์ชันdrawMickey()
a = a + 1;
}
void drawMickey(int y){ //ตัวแปร y ของฟังก์ชันdrawMickey()
int b = 100; //Local variable
//ตัวอักษรMICKEY
strokeWeight(10);
stroke(255 ,0 ,0);
line(50,210+y-b,50,250+y-b);
line(50,210+y-b,65,225+y-b);
line(65,225+y-b,80,210+y-b);
line(80,210+y-b,80,250+y-b);
line(100,210+y-b,100,250+y-b);
line(94,210+y-b,106,210+y-b);
line(94,250+y-b,106,250+y-b);
line(120,210+y-b,120,250+y-b);
line(120,210+y-b,140,210+y-b);
line(120,250+y-b,140,250+y-b);
line(155,210+y-b,155,250+y-b);
line(176,210+y-b,155,230+y-b);
line(155,230+y-b,176,250+y-b);
line(191,210+y-b,191,250+y-b);
line(191,210+y-b,211,210+y-b);
line(191,230+y-b,211,230+y-b);
line(191,250+y-b,211,250+y-b);
line(226,210+y-b,239,230+y-b);
line(239,230+y-b,239,250+y-b);
line(239,230+y-b,252,210+y-b);
//หู
noStroke();
fill(0);
ellipse(115,80+y-b,50,50);
ellipse(185,80+y-b,50,50);
//หัว
fill(0);
ellipse(150,127+y-b,92.5,96);
//หน้าส่วนบน
fill(255 ,239 ,219);
ellipse(135,120+y-b,40,60);
ellipse(165,120+y-b,40,60);
//ตาขาว
fill(255,255,255);
ellipse(135,125+y-b,20,40);
ellipse(165,125+y-b,20,40);
//ตาดำ
fill(0);
ellipse(140,130+y-b,10,20);
ellipse(160,130+y-b,10,20);
// หน้าส่วนล่าง
fill(255 ,239 ,219);
ellipse(150,155+y-b,75,40);
//จมูก
fill(0);
ellipse(150,140+y-b,20,15);
//ปาก
fill(255 ,106 ,106);
ellipse(150,160+y-b,30,10);
}
จากโค้ด Global variable คือ ตัวแปร a ซึ่งสามารถเรียกนำไปใช้ได้ทุกฟังก์ชัน
(จาก a = a + 1; จะทำให้ภาพมีการเปลี่ยนตำแหน่ง ซึ่งเป็นพื้นฐานของการทำAnimation)
Local variable คือ ตัวแปร b ซึ่งสามารถเรียกนำไปใช้ได้แค่ในฟังก์ชันที่มีตัวแปร b เท่านั้น
(ถ้ามีการเปลี่ยนค่าตัวแปรb จะทำให้ตำแหน่งเปลี่ยนตามค่าของตัวแปร)
User defined function คือ drawMickey() ซึ่งเป็นฟังก์ชันที่สร้างขึ้นมาเอง
ตัวแปร y จะมีค่าเท่ากับตัวแปร a เนื่องจาก drawMickey(a) เป็นฟังก์ชันที่สร้างขึ้น และ drawMickey(int y) เป็นการเรียกใช้ฟังก์ชันที่สร้างขึ้น ทำให้ค่าตัวแปรใน() มีค่าเท่ากัน
(การเปลี่ยนค่าตัวแปร y ทำให้MICKEYเคลื่อนที่ลง)
ถ้า background() อยู่ในฟังก์ชัน setup() จะทำให้ภาพMICKEYซ้อนกัน ดังรูป
และถ้า background() อยู่ในฟังก์ชัน draw() แต่อยู่ล่างโค้ด a = a + 1; จะทำให้เห็นแต่สีพื้นหลัง ดังรูป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น