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

-New UFO-



int[] n={4,2,2,4}; //เป็นการประกาศตัวแปลเป็นArray  จำนวนเต็ม  ชื่อ n
                          ซึ่งตัวแปลชนิดนี้จะเก็บค่าได้หลายตัว โดยที่มีตำแหน่ง index เป็นตัวกำกับ
int i=0;                  //ค่าi มีผลต่อการนับเปลี่ยบเสมือนเวลา
int p=-200;           //ค่าp มีผลต่อตำแหน่งในแนวแกน x ของUFO
void setup(){
 size(400,300);
}
void draw(){
 background(0);
 drawUFO(p);               //เป็นการเรียกใช้ฟังก์ชัน drawUFO โดยมีการส่งค่า p ไปที่ฟังก์ชัน
 if(i<=600){                   //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
                                      ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
  p=p+1;  
 }
 else{                               //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ }  โดยคำสั่งจะเริ่มพิจารณา
                                  เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
  p=p-1;
 }
 if(i>=1200){
  p=-200;
  i=0;
 }
 i=i+1;                             //เป็นการกำหนดให้ค่า i เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
                                     เรียกใช้ฟังก์ชัน void draw( ){ }
}

void drawUFO(int p){         //เป็นการสร้างฟังก์ชันขึ้นมาเอง
                                          (int p)ที่เห็นคือการ กำหนดตัวแปลเพื่อให้สามารถ
                                           รับค่าที่ส่งมาเมื่อมีการเรียกใช้ฟังชัน และส่งต่อไปยังตัวแปลp
                                           ในคำสั่งต่าง ๆ
  int y=50;
  int count=0;
 while(count<n.length){        //while( ){} คือคำสั่งที่ใช่ในการวนลูป 
                                           หรือทำงานซ้ำๆเมื่อเงื่อนไขเป็นจริง
                                           และเลิกทำเมื่อเงื่อนไขไม่เป็นจริง
                                           โดยกำหนดเงื่อนไขใน ( ) และกำหนดคำสั่งใน { }
                               ในที่นี้เงื่อนไขคือ count<n.length (n.length)คือความกว้างของตัวแปลarray n
   int c=0; int x=30;
   while(c<n[count]){        
   fill(250,255,0);
   triangle(x+p,y,x-15+p,y+30,x+15+p,y+30);
   fill(150);
   ellipse(x+p,y,30,30);
   fill(30, 144 ,255);
   ellipse(x+p,y+5,50,15);
   x=x+50;
   c=c+1;
   }
 y=y+60 ;
 count=count+1;
 }
}
//อธิบายเพิ่มเติมลูปwhileแรกทำงานเป็นตัวกำหนดจำนวนแถวในแนวนอน จำนวนแถวในแนวนอนจะขึ้นอยู่กับความกว้างของ array n
ลูปwhileสองทำงานเป็นตัวกำหนดจำนวนUFOในแต่ล่ะแถว สามารถเปลี่ยนได้โดยการเปลี่ยนเลขใน array n ที่ประกาศไว้ข้างตน


//อ้างอิงคำสั่งพื้นฐานต่างๆจาก lab1 http://com5630043.blogspot.com/search/label/lab1
//อ้างอิงอธิบายฟังก์ชันจาก lab2 http://com5630043.blogspot.com/search/label/lab2
//อ้างอิงอธิบายเรื่องif-elseจาก lab3 http://com5630043.blogspot.com/search/label/lab3%20%3A%20Condition

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

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