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

UFO [Back and Forth]


ประกาศ xPos count yPos ไว้นอกfunction void setup เลย

เพราะถ้ามาประกาศไว้ข้างในvoid setup มันจะมองไม่เห็นตัวแปร

มันเป็นตัวแปรแบบ Global variable

static int xPos;
static int count;
int y =150;
void setup()
{
size(500,500); //กำหนดขนาดของภาพ
int xPos=0; // ตำแหน่ง x เริ่มต้นที่จุด x=0
//xPos=width; //ให้เริ่มจากขวาไปซ้าย
int count=xPos;//

}

void draw()
{
background(255); //กำหนดสีพื้นหลังเป็นสี ขาว
drawUFO(xPos); //เรียกใช้ User Funcion ที่ชื่อว่า drawUFO โดยส่งค่า xPos (ตำแหน่ง พิกัด x) เข้าไปใน Function
drawstar(xPos,y);
if(count<=width) //เงื่อนไขคือ ถ้า ตัวนับการเคลื่อนที่ มีค่าน้อยกว่า ขอบขวาสุดในแกน x (กรณีนี้ให้เลื่อจาก ซ้ายไปขวา)
{
xPos=xPos+1; //ให้ เพิ่มค่าตำแหน่งพิกัด x 1 ค่า
count=count+1; //เพิ่มค่าตัวนับการเคลื่อนที่ 1 ค่า
}
if(count>width || xPos==width) //เงื่อนไขคือ ถ้า ตัวนับการเคลื่อน หรือ ค่า ตำแหน่งพิกัด x มีค่าเท่ากับ ขอบขวาสุดในแกน x (กรณีนี้ให้เลื่อนจากขวาไปซ้าย)
{
xPos=xPos-1; //ให้ทำการ ลดค่า ตำแหน่งพิกัด x 1 ค่า
count=count+1; //เพิ่มค่าตัวนับการเคลื่อนที่ 1 ค่า
}
if(count==width*2) //เงื่อนไขคือ ถ้า ตัวนับการเคลื่อนที่ มีค่าเท่ากับ ระยะทางที่ UFO เคลื่อนที่ไป-มา จนถึงตำแหน่งเดิม (ไปถึงตำแหน่ง ขอบขวาสุดของหน้าจอ หรือ ตำแหน่ง x=0 จนครบ 2 ครั้ง)
{
count=0; // ให้ทำการ กำหนดค่า ตัวนับการเคลื่อนที่ = 0 ใหม่ เพื่อที่จะ นับการเคลื่อนที่ใหม่ ไปเรื่อยๆ จนกว่าาจะเข้า เงื่อนไขนี้อีกครั้ง
}
}

void drawUFO(int xPos) //
{
ellipse(xPos,height/2,30,40); // วาดวงรีที่เป็น รีแนวนอน
ellipse(xPos,height/2,60,10); // วาดวงรีที่เป็น รีแนวตั้ง
}
void drawStar(int x,int y) //
{
//สร้างดาว
}
void drawstar(int x, int y) {
fill(50);
int w=100, h=50;
//สร้างดาว1
ellipse(x, y, w, h);
//สร้างดาว2
ellipse(x+300, y+50, w-30, h-10);
//สร้างดาว3
ellipse(x+60, y-90, w, h);
//สร้างดาว4
ellipse(x-80, y-150, w-30, h-10);
//สร้างดาว5
ellipse(x+250, y+100, w-30, h-10);
//สร้างดาว6
ellipse(x+200, y-100, w+20, h+20);
//สร้างดาว7
ellipse(x+180, y+30, w, h);
//สร้างดาว8
ellipse(x+300, y+150, w, h);
//สร้างดาว8
ellipse(x+360, y+100, w, h);
//สร้างดาว9
ellipse(x+400, y-80, w, h);
//สร้างดาว10
ellipse(x+210, y, w, h);
//สร้างดาว11
ellipse(x+250, y-80, w, h);
//สร้างดาว12
ellipse(x+450, y-60, w, h);
//สร้างดาว13
ellipse(x+460, y+90, w, h);
//สร้างดาว14
ellipse(x+500, y+100, w, h);
//สร้างดาว15
ellipse(x+590, y-80, w+20, h-5);
//สร้างดาว16
ellipse(x+666, y-60, w, h);
//สร้างดาว17
ellipse(x+630, y+200, w+3, h);
//สร้างดาว18
ellipse(x+700, y+60, w+5, h);
//สร้างดาว19
ellipse(x+760, y-80, w, h);
//สร้างดาว20
ellipse(x+800, y+60, w, h);
}

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

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