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

UFO



ต่อไปนี้ จะป็นการวาดUFO โดย function แต่มีการนำ condition เข้ามาเพิ่มเพื่อให้ ภาพสามารถเคลื่อนไหวได้ ในครั้งนี้เราจะใช้ เงื่อนไขแบบซ้อนเงื่อนไข เพื่อให้มีการเคลื่อนไหวแบบกลับไปกลับมาเหมือนค่ะ
// ส่วนนี้เป็นการประกาศ ตัวแปรแบบ Global เพราะต้องการให้void draw(),void drawStar(),void drawUFO1( ) ,void drawUFO2( ) มองเห็นตัวแปรนี้ด้วย และเพื่อให้ สามารถเปลี่ยนแปลงค่าได้
int x=70,y=70;
int a=10,b=250;
int c=0,i=0;
int e=0,j=0;
void setup(){
  size(400,400);
}//function แรกของการทำงาน จะประกาศ กำหนด แต่ไม่ต้องเรียกใช้ เพราะจะเรียกใช้เองอัตโนมัติ
void draw(){
  background(255);//เป็นคำสั่งที่ใช้ในการกำหนดสีของพื้นหลัง
  drawStar(a);//เป็นส่วนที่เรียกใช้void drawStar()โดยรับค่า a มาใช้ใน function (แบบ parameter)
  drawUFO1(x,y,c,i);//เป็นส่วนที่เรียกใช้void drawUFO1()โดยรับค่า x,y,c,i มาใช้ใน function
  drawUFO2(e,j,b);//เป็นส่วนที่เรียกใช้void drawUFO2()โดยรับค่า e,j,b มาใช้ใน function
  if (c<270){
   c=c+1;
  }else{
   if(i<-270){
     i=0; c=0;
   }else{
     i=i-1;
   }
  }//condition for UFO 1
  if (e<130){
   e=e+1;
  }else{
   if(j<-130){
     j=0; e=0;
   }else{
     j=j-1;
   }
  }//condition for UFO 2
}//เงื่อนไขแรก UFO 1 c=c+1;  ถ้า  c<270 คือจะมีการเพิ่มขึ้น ทีละ 1 ขยับไปอีก 1 แต่เงื่อนไข  i=i-1; ถ้า i<-270จะมีการลดลงทีละ 1 คือขยับกลับมา

void drawUFO1(int x,int y,int c,int i){
  stroke(2);
  fill(48,40,173); 
  ellipse(x+c+i,y-15,60,50);
  fill(25,32,64);
  ellipse(x+c+i,y,110,40);
  fill(random(75),random(20),random(20));//random คำสั่งที่ใช้สุ่มค่า ในที่นี้อยู่ใน fillจะทำการ สุ่มค่าสี
  ellipse(x+c+i,y,140,10);
}//ส่วนนี้จะเป็นการประกาศและกำหนด user defined function drawUFO()ฟังก์ชันที่ใช้วาดUFOโดยมีการ+ c  กับ i เข้าไปเพื่อให้ ขยับไปตามเงื่อนไขที่กำหนด
void drawUFO2(int e,int j,int b){
  stroke(2);
  fill(190,51,219);
  ellipse(x+130+e+j,b-15,60,50);
  fill(40,19,44);
  ellipse(x+130+e+j,b,110,40);
  fill(random(67),random(18),(77));
  ellipse(x+130+e+j,b,140,10);
}//ส่วนนี้จะเป็นการประกาศและกำหนด user defined function drawUFO2()ฟังก์ชันที่ใช้วาดUFOโดยมีการ+ j  กับ e เข้าไปเพื่อให้ ขยับไปตามเงื่อนไขที่กำหนด
void drawStar(int a){
  noStroke();
  fill(random(227),random(73),random(11));
  ellipse(290,57,a-5,a-5);
  ellipse(40,100,a-4,a-4);
  ellipse(56,290,a,a);
  ellipse(200,150,a-1,a-1);
  ellipse(350,289,a,a);
  ellipse(89,39,a-6,a-6);
}//ส่วนนี้จะเป็นการประกาศและกำหนด user defined function drawStar()ฟังก์ชันที่ใช้วาดดาว

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

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