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

-UFO-




void setup(){
 size(300,200); 
}
int x=30;
int c=0;
void draw(){
  background(0);
  drawUFO1(x);
  drawUFO2(x);
  c=c+1;                       //เป็นการกำหนดให้ค่า c เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
                                    เรียกใช้ฟังก์ชัน void draw( ){ }
  if(c<=250){                //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
                                     ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
    x=x+1;    
  }
  else{                       //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ }  โดยคำสั่งจะเริ่มพิจารณา
                                  เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
    x=x-1; 
  }
  if(c>=500){
    c=0; 
  }
}
void drawUFO1(int x){
  fill(250,255,0);
  triangle(x,20,x-10,70,x+10,70);
  fill(255);
  ellipse(x,30,30,30);
  ellipse(x,35,50,15);
}
void drawUFO2(int x){
  fill(250,255,0);
  triangle(300-x,50,290-x,100,310-x,100);
  fill(255);
  ellipse(300-x,60,30,30);
  ellipse(300-x,65,50,15);
}

//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้UFOขยับไปซ้ายขวา แต่ที่UFOเคลื่อนที่สวนทางกันเพราะ 
ค่าx ใน UFO1 มีค่าเป็นบวก แต่ค่าx ในUFO2 มีค่าเป็นลบ ทำให้เคลื่อนที่สวนทางกัน
//เพิ่มเติม ค่าcที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ จากเงื่อนไขถ้าc<=250 ค่าxจะบวก1เรื่อยๆ
ทำให้UFO1 ขยับไปทางขวา UFO2ขยับไปทางซ้าย แต่เมื่อเงื่อนไข c<=250 ไม่เป็นจริง
ค่าxจะลดลงมาเรื่อยๆ ทำให้UFOเคลื่อนที่กลับที่เดิม เมื่อc>=500 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า c=0 เป็นการรีเซ็ต ค่าc ให้กลับมาเป็นค่าที่เริ่มต้น

//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2

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

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