วันพฤหัสบดีที่ 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
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น