วันจันทร์ที่ 8 กรกฎาคม พ.ศ. 2556

-Boat-




void setup(){
 size(300,200);
}
int count=0;
int x=0;
int y=0;
void draw(){
  background(220);
  drawSky();
  drawSea();
  drawBoats();
  count=count+1;                   //เป็นการกำหนดให้ค่า c เพิ่มขึ้น 1 ทุกๆครั้งที่มีการ
                                               เรียกใช้ฟังก์ชัน void draw( ){ }
  if(count<=170){                   //if( ){ }เป็นการกำหนดเงื่อนไข โดยกำหนดเงื่อนไขไว้ใน ( )
                                              ถ้าเงื่อนไขเป็นจริง ให้ทำตามคำสั่งใน { }
    x=x+1;
  }
  if(count<=200){
    y=y+1;
  }
 
  else{                                     //else{ } เป็นคำสั่งที่ใช้ต่อจาก if( ){ }  โดยคำสั่งจะเริ่มพิจารณา
                                               เงื่อนไขจาก if ก่อนถ้าไม่เป็นจริง จะทำตามคำสั่งของ else ใน { }
    x=x-1;
    y=y-1;
  }
  if(count==400){
    count=0;
    x=0;
    y=0;
  }

}
void drawSea(){
  fill(0,69,215);
  rect(0,150,300,100);
}
void drawBoats(){
  fill(200);
  quad(y+20,130,y+80,130,y+70,150,y+30,150);
  noStroke();
  fill(255,0,0);
  triangle(y+50,95,y+80,120,y+50,120);
  stroke(1);
  fill(100);
  rect(y+45,95,5,35);

  quad(x+40,130,x+100,130,x+90,150,x+50,150);
  noStroke();
  fill(0,255,0);
  triangle(x+70,95,x+100,120,x+70,120);
  fill(100);
  rect(x+65,95,5,35);
}
void drawSky(){
  fill(255,50,10);
  ellipse(50,150,80,80);
  fill(250,255,0);
  strokeWeight(10);
  stroke(250,255,0);
  line(-30,10,10,110);
  line(10,10,30,100);
  line(50,10,50,90);
  line(90,10,70,100);
  line(160,10,80,110);
  line(230,20,90,120);
  line(300,30,100,130);
  line(300,90,110,140);
  strokeWeight(1);
  stroke(0);
}

//ตัวแปล x ใช้ในการเก็บค่าเพื่อให้เรือธงสีเขียวขยับไปซ้ายขวา
//ตัวแปล y ใช้ในการเก็บค่าเพื่อให้เรือธงสีแดงขยับไปซ้ายขวา
ที่กำหนด2ตัวแปลเพราะ จะทำให้เรือรับค่าที่ต่างกัน เพิ่มทำให้เหมือนเรือแซงกัน
//เพิ่มเติม ค่า count ที่เพิ่มขึ้นเปรียบเสมือน เวลาที่เพิ่มขึ้นเรื่อยๆ 
  จากเงื่อนไขถ้าcount<=170 ค่าxจะบวก 1 เรื่อยๆ ทำให้เรือธงสีเขียวขยับไปทางขวา  
  จากเงื่อนไขถ้าcount<=200 ค่าyจะบวก 1 เรื่อยๆ ทำให้เรือธงสีแดงขยับไปทางขวา
แต่เมื่อเงื่อนไข count<=170 และ เงื่อนไข count<=200 ไม่เป็นจริง
ค่าx และ y จะลดลงมาเรื่อยๆ ทำให้เรือทั้ง2เคลื่อนที่ไปทางซ้าย
จากข้างต้นเรือธงสีเขียวจะหยุดก่อนเรือธงสีแดงทำให้เวลากลับเรือธงสีเขียวจะนำหน้าเรือธงสีแดง
 เมื่อcount==400 จะตรงกับอีกเงื่อนไขนึง
ทำให้ค่า count=0 , x=0, y=0 เป็นการรีเซ็ต ค่าc ,x และ y ให้กลับมาเป็นค่าเริ่มต้น

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

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

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