~ o.o UFO Array o.o ~
void setup(){
size(600,400); //กำหนดขนาด screen }
int[] UFO = {1,2,3,4}; //ประกาศและกำหนดค่าตัวแรอาเรย์
int x = 225; //ประกาศและกำหนดค่าตัวแปรแบบ Global
int u = 0;
void draw(){
background(255,223,188);
fill(random(0,33)); //ใส่สีให้คำสั่งต่อไปนี้ โดยการวนค่าสีตั้งแต่ 0 ถึง 33 เร็วๆด้วยคำสั่ง random
strokeWeight(5); //กำหนดขนาดของเส้น
stroke(222); //ใส่สีให้เส้นในคำสั่งต่อไป
rect(20,20,560,360); //วาดสี่เลี่ยม
int i = 0; // ประกาศและกำหนดค่าตัวแปรในฟังก์ชัน
int y = 120;
int m = 0;
while( i < UFO.length ){ //สร้างลูปที่กำหนดให้ ค่า i น้อยกว่า จำนวนช่องของอาเรย์ UFO
row(x+u, y, 50, UFO[i],m);
//เรียกใช้ฟังก์ชัน row แล้ว UFO[i] เป็นการเรียนใช้ค่าอาเรย์ UFO ในช่องที่ i ที่เริ่มจาก 0
m = m-50; //ให้ค่า m ลดลง 50 จะทำให้ภาพที่ได้แถวถัดมาเลื่อนไปทางซ้าย 50 หน่วย
y = y+60; //ให้ค่า y เพิ่มขึ้น 60 จะทำให้ภาพแถวต่อมาเลื่อนลง 60 หน่วย
i = i+1; //เพิ่มค่า i กลับไปวนลูป พิจารณาเงื่อนไขอีกครั้ง
}
if(x < 375){
x = x+1; //เงื่อนไข ถ้า x น้อยกว่า 375 ให้ x = x+1
}else if(u < -150){ //เงื่อนไข ถ้า u น้อยกว่า -150 ให้กลับสู่ค่าเริ่มต้น
x = 225;
u = 0;
}else{
u = u-1; //เงื่อนไข ถ้า u ไม่น้อยกว่า -150 ให้ u = u-1
}
}
void row(int x, int y, int r, int n,int m){ //สร้างฟังก์ชัน row
int count = 0; //กำหนดค่า count เพื่อการวนลูป
while( count < n ){ //สร้างลูป โดยให้ค่า count น้อยกว่า n
drawUFO(m+x,y,r); //เรียกใช้ฟังก์ชัน drawUFO
x = x+100; //เพิ่มค่า x จะได้ภาพถัดมาที่เลื่อนไปทางขวา 100 หน่วย
count = count+1; //เพิ่มค่า count แล้วกลับไปพิจารณาเงื่อนไขการวนลูป
}
}
void drawUFO(int x, int y, int r){ //สร้างฟังก์ชัน drawUFO ศึกษาเพิ่มเติมได้จาก lab3-condition**
stroke(255,243,191);
strokeWeight(2);
line(x,y,x,y-r*2/3);
fill(255,0,0);
ellipse(x,y-r*2/3,random(9,15),random(9,15));
fill(0,240,198);
ellipse(x,y-6,r,r*3/4);
fill(255,170,232);
ellipse(x,y,r*5/3,r/2);
strokeWeight(5);
line(x+r*6/7,y,x-r*6/7,y);
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น