วันพฤหัสบดีที่ 11 กรกฎาคม พ.ศ. 2556

LOVE:MICKEY2



CODE
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; จะทำให้เห็นแต่สีพื้นหลัง ดังรูป



ไม่มีความคิดเห็น:

แสดงความคิดเห็น