วันพุธที่ 10 กรกฎาคม พ.ศ. 2556

UFO flying back and forth

Shining UFO

ภาพนี้เป็นภาพ UFO เคลื่อนไหวไปกลับ อันดับแรกผมกำหนดตัวแปรซึ่งเป็น Global variables มาใช้ 2 ตัว จากนั้นจึงใช้ฟังก์ชั่น void setup() ในการกำหนดพื้นที่ จากนั้นจึงสร้างฟังก์ชั่นที่สร้างเอง เพื่อวาดรูป UFO ในการวาดนั้น ผมใช้วงรี หรือฟังก์ชั่น ellipse ในการวาด ส่วนการเติมสียังคงใช้ฟังก์ชั่น fill() ที่ตามด้วยเครื่องหมาย # กับค่าที่ระบุจาก Color Selector หลังจากนั้นจึงใช้ฟังก์ชั่น void draw() ในการเรียกใช้งานฟังก์ชั่นที่สร้างขึ้น และผมยังใช้ฟังก์ชั่น background() ในการกำหนดพื้นหลัง โดยผมให้พื้นหลังมีการเปลี่ยนสีไปเรื่อยๆ ตามพิกัดบนแกน X และ Y หรือ mouseX และ mouseY พื้นหลังจึงเปลี่ยนสีไปเรื่อยๆ ตราบเท่าที่เราขยับเมาส์ไปบนภาพ ส่วนการทำให้เคลื่อนไหว ผมใช้ฟังก์ชั่น if() ในการกำหนดเงื่อนไข โดยใช้ฟังก์ชั่น 2 ตัวที่กำหนดและใส่ไว้ในวงรี เพื่อให้ UFO เคลื่อนที่ไปข้างหน้า และกลับตามค่าที่ระบุในเงื่อนไข อันที่จริง การสร้างภาพนี้ไม่ยากเท่าไร แค่รู้จักการใช้ตัวแปร และฟังก์ชั่นที่ควรนำมาใช้ 

Processing Code

int x = 70; //int ใช้กับตัวแปรที่มีค่าเป็นจำนวนเต็ม
int y = 0; //ฟังก์ชั่นเหล่านี้เป็น Global variables ใช้ได้ทุกฟังก์ชั่นในงานชิ้นนี้
void setup() {  //ฟังก์ชั่นหลักที่ใช้ในการกำหนด มีได้เพียงหนึ่งฟังก์ชั่นเท่านั้น
  size(400, 200); //ฟังก์ชั่นที่ใช้ในการกำหนดขนาดพื้นที่ หรือ size(width, height)
}

void drawUFO() {  //ฟังก์ชั่นที่สร้างขึ้นเอง ชื่อ drawUFO
  fill(#FAEE0A); //ฟังก์ชั่นที่ใช้ในการเติมสีตามค่าของแม่สี หรือเครื่องหมาย #
  ellipse(x+y, 95, 50, 60); //ฟังก์ชั่นที่ใช้ในการวาดวงรี หรือ ellipse(x, y, width, height)
  fill(#A5790A);
  ellipse(x+y, 100, 140, 30);
}

void draw() {  //ฟังก์ชั่นหลักที่ใช้ในการวาด มีได้เพียงหนึ่งฟังก์ชั่นเท่านั้น
  background(mouseY, mouseY, mouseX); //ฟังก์ชั่นที่ใช้ในการกำหนดพื้นหลัง โดยกำหนดค่าตามแม่สี ใช้ฟังก์ชั่น mouseX และ mouseY เพื่อให้ค่าของสีเปลี่ยนไปตามแกน X และ Y ไปเรื่อยๆ ตามเมาส์
  drawUFO();
  if(x<340) {
  x=x+3; //ฟังก์ชั่นที่กำหนดเงื่อนไขให้ UFO เคลื่อนที่ไปข้างหน้าตามค่า x เลขที่บวกคือเพิ่มความเร็ว
  }else if(y<-293) {
      x = 70; //ฟังก์ชั่นที่กำหนดเงื่อนไขให้ UFO เคลื่อนที่ไปข้างหลังตามค่า y เลขที่บวกคือเพิ่มความเร็ว
      y = 0;
      }else{
  y=y-3;
  } //else คือฟังก์ชั่นที่ขยายโครงสร้างของฟังก์ชั่น if() ตามด้วยโปรแกรมที่จะให้เลือกระหว่างคำสั่ง 2 ชุดหรือมากกว่านั้น และจะระบุคำสั่งที่ปฏิบัติ เมื่อประโยคในฟังก์ชั่น if() ผิดพลาด
} //เรียกใช้ฟังก์ชั่นที่สร้างขึ้นด้วยฟังก์ชั่นหลัก void draw() หากไม่มีฟังก์ชั่นชุดนี้ ฟังก์ชั่นที่สร้างขึ้นจะไม่ทำงาน
หมายเหตุ สังเกตได้ว่า เครื่องหมาย // เป็นการบอกว่า ฟังก์ชั่นชุดนี้ไม่่ใช้งาน และฟังก์ชั่นหลักที่ใข้ยังเป็น function without parameter 

Canvas




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

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