วันอังคารที่ 24 กันยายน พ.ศ. 2556

Square Moving UFO

void setup() { //ฟังก์ชั่นหลักที่ใช้ในการกำหนดค่า และเรียกใช้สิ่งต่างๆ เป็นฟังก์ชั่นที่ไม่มีการวกกลับ size(500, 500); //ฟังก์ชั่นที่ใช้ในการกำหนดขนาดของพื้นที่ หรือ size(width, height) } Ufo a = new Ufo(250, 250, 250, 2, "up", "red"); //UFO a สีแดง จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 250 ความเร็ว 2 เริ่มด้วยการขยับขึ้น Ufo b = new Ufo(250, 250, 100, 7, "down", "yellow"); //UFO b สีเหลือง จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 100 ความเร็ว 7 เริ่มด้วยการขยับขึ้น Ufo c = new Ufo(250, 250, 50, 10, "right", "brown"); //UFO c สีน้ำตาล จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 50 ความเร็ว 10 เริ่มด้วยการขยับขึ้น Ufo d = new Ufo(250, 250, 200, 5, "left", "green"); //UFO d สีเขียว จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 200 ความเร็ว 5 เริ่มด้วยการขยับขึ้น void draw() { //ฟังก์ชั่นหลักที่ใช้ในการวาด background(#191970); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับพื้นหลัง a.void setup() { //ฟังก์ชั่นหลักที่ใช้ในการกำหนดค่า และเรียกใช้สิ่งต่างๆ เป็นฟังก์ชั่นที่ไม่มีการวกกลับ size(500, 500); //ฟังก์ชั่นที่ใช้ในการกำหนดขนาดของพื้นที่ หรือ size(width, height) } Ufo a = new Ufo(250, 250, 250, 11, "up", "red"); //UFO a สีแดง จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 250 ความเร็ว 11เริ่มด้วยการขยับขึ้น Ufo b = new Ufo(250, 250, 100, 5, "down", "yellow"); //UFO b สีเหลือง จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 100 ความเร็ว 5เริ่มด้วยการขยับขึ้น Ufo c = new Ufo(250, 250, 50, 20, "right", "brown"); //UFO c สีน้ำตาล จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 50 ความเร็ว 20 เริ่มด้วยการขยับขึ้น Ufo d = new Ufo(250, 250, 200, 6, "left", "green"); //UFO d สีเขียว จุดเริ่มอยู่แกน X 250 แกน Y 250 ขนาด 200 ความเร็ว 6 เริ่มด้วยการขยับขึ้น void draw() { //ฟังก์ชั่นหลักที่ใช้ในการวาด background(#9400D3); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับพื้นหลังให้เป็นสีม่วง a.display(); //แสดง UFO a b.display(); //แสดง UFO b c.display(); //แสดง UFO c d.display(); //แสดง UFO d } class Ufo { //สร้าง class ชื่อ UFO สำหรับการเก็บข้อมูล int x, y, w, i; //กำหนดตัวแปรทั้งสี่เป็นจำนวนเต็มเพื่อให้เก็บค่าแกน X แกน Y ความกว้าง และการนับ ตามลำดับ String d, s; //กำหนดเพื่อเก็บทิศทาง int stop; //กำหนดตัวแปรนี้เพื่อเป็นตัวหยุด String tron; //กำหนดเพื่อเก็บค่าสี int speed; //กำหนดตัวแปรนี้เพื่อเก็บความเร็ว Ufo(int x, int y, int w, int s, String d, String c) { this.x = x; this.y = y; this.w = w; this.d = d; this.i = 0; this.stop = 0; this.tron = c; this.speed = s; } void display() { //ฟังก์ชั่นที่สร้างขึ้นเพื่อแสดง UFO Control(); //ตัวควบคุม float h = this.w/3; noStroke(); if(tron.equals("blue")) { fill(#4169E1); //สีฟ้า } else if(tron.equals("pink")) { fill(#FF1493); //สีชมพู } else if(tron.equals("orange")) { fill(#FFA500); //สีเหลือง } else if(tron.equals("green")) { fill(#00FA9A); //สีเขียว } strokeWeight(3); //ฟังก์ชั่นสำหรับการเพิ่มความหนาของเส้น stroke(0); //ฟังก์ชั่นสำหรับการเติมสีในเส้น โดยสีที่ใส่ไปคือสีดำ ellipse(this.x, this. y, this.w, h); //ฟังก์ชั่นสำหรับการวาดวงรี หรือ ellipse(x, y, width, height) float q = this.y-2*h/5, p=this.w-h, u=h; ellipse(this.x, q, p, u); fill(random(0,255),random(50,255),random(0,255)); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับสิ่งต่างๆ โดยกำหนดให้เป็นไปตามแม่สี หรือเครื่องหมาย # รวมทั้งฟังก์ชั่น โดยสีที่ใส่ไปนี้ให้ออกมาแบบสุ่มตามฟังก์ชั่น random float r = h/5; ellipse(this.x, q, r, r); ellipse(this.x+3*h/5, q, r, r); ellipse(this.x-3*h/5, q, r, r); } void Control() { //ฟังก์ชั่นสำหรับการควบคุม Motion(); //เคลื่อนตามเข้ม Pressed(); //สร้างขึ้นเพื่อการกด Ufo //กำหนดเงื่อนไขเมื่อมีทิศทางตามนี้ if(d.equals("up")) { y = y-this.speed; } else if(d.equals("down")) { y = y+this.speed; } else if(d.equals("right")) { x = x+this.speed; } else if(d.equals("left")) { x = x-this.speed; } else if(d.equals("stop")) { } } void Motion() { //ฟังก์ชั่นเพื่อกำหนดการเคลื่อนที่ตามเข้ม if(x>=500-this.w/2&&y<500-this.w/6) { d = "down"; } else if(y>=500-this.w/6&&x>this.w/2) { d = "left"; } else if(x<=this.w/2&&y>(this.w-this.w/3)/2) { d = "up"; } else if(y<=this.w/6+2*w/15&&x<500-this.w/2) { d = "right"; } } void Pressed() { //ฟังก์ชั่นเพื่อการกด UFO float star1 = sqrt((w/2)*(w/2)-(w/6)*(w/6)); float h1 = this.x+star1; float h2 = this.x-star1; float star2 = sqrt((h1-mouseX)*(h1-mouseX)+(this.y-mouseY)*(this.y-mouseY)); float star3 = sqrt((h2-mouseX)*(h2-mouseX)+(this.y-mouseY)*(this.y-mouseY)); float star4 = star2+star3; if(star4<=w&&mousePressed) { if(stop==0&&i%7==0) { d = "stop"; stop = 1; } else if(stop==1&&i%10==0) { stop = 0; } } float star5 = sqrt(((w-w/3)/2)*((w-w/3)/2)-(w/6)*(w/6)); float h3 = this.x+star1; float h4 = this.x-star1; float star6 = sqrt((h3-mouseX)*(h3-mouseX)+(y-2*w/15-mouseY)*(y-2*w/15-mouseY)); float star7 = sqrt((h4-mouseX)*(h4-mouseX)+(y-2*w/15-mouseY)*(y-2*w/15-mouseY)); float star8 = star6+star7; if(star8<=w&&mousePressed) { if(stop==0&&i%7==0) { d = "stop"; stop = 1; } else if(stop==1&&i%10==0) { stop = 0; } } if(stop==1) { d = "stop"; } i = i+1; } }display(); //แสดง UFO a b.display(); //แสดง UFO b c.display(); //แสดง UFO c d.display(); //แสดง UFO d } class Ufo { //สร้าง class ชื่อ UFO สำหรับการเก็บข้อมูล int x, y, w, i; //กำหนดตัวแปรทั้งสี่เป็นจำนวนเต็มเพื่อให้เก็บค่าแกน X แกน Y ความกว้าง และการนับ ตามลำดับ String d, s; //กำหนดเพื่อเก็บทิศทาง int stop; //กำหนดตัวแปรนี้เพื่อเป็นตัวหยุด String tron; //กำหนดเพื่อเก็บค่าสี int speed; //กำหนดตัวแปรนี้เพื่อเก็บความเร็ว Ufo(int x, int y, int w, int s, String d, String c) { this.x = x; this.y = y; this.w = w; this.d = d; this.i = 0; this.stop = 0; this.tron = c; this.speed = s; } void display() { //ฟังก์ชั่นที่สร้างขึ้นเพื่อแสดง UFO Control(); //ตัวควบคุม float h = this.w/3; noStroke(); if(tron.equals("red")) { fill(#CD5C5C); //สีแดง } else if(tron.equals("brown")) { fill(#F4A460); //สีน้ำตาล } else if(tron.equals("yellow")) { fill(#FAFAD2); //สีเหลือง } else if(tron.equals("green")) { fill(#7CFC00); //สีเขียว } strokeWeight(3); //ฟังก์ชั่นสำหรับการเพิ่มความหนาของเส้น stroke(0); //ฟังก์ชั่นสำหรับการเติมสีในเส้น โดยสีที่ใส่ไปคือสีดำ ellipse(this.x, this. y, this.w, h); //ฟังก์ชั่นสำหรับการวาดวงรี หรือ ellipse(x, y, width, height) float q = this.y-2*h/5, p=this.w-h, u=h; ellipse(this.x, q, p, u); fill(random(0,255),random(50,255),random(0,255)); //ฟังก์ชั่นที่ใช้ในการเติมสีให้กับสิ่งต่างๆ โดยกำหนดให้เป็นไปตามแม่สี หรือเครื่องหมาย # รวมทั้งฟังก์ชั่น โดยสีที่ใส่ไปนี้ให้ออกมาแบบสุ่มตามฟังก์ชั่น random float r = h/5; ellipse(this.x, q, r, r); ellipse(this.x+3*h/5, q, r, r); ellipse(this.x-3*h/5, q, r, r); } void Control() { //ฟังก์ชั่นสำหรับการควบคุม Motion(); //เคลื่อนตามเข้ม Pressed(); //สร้างขึ้นเพื่อการกด Ufo //กำหนดเงื่อนไขเมื่อมีทิศทางตามนี้ if(d.equals("up")) { y = y-this.speed; } else if(d.equals("down")) { y = y+this.speed; } else if(d.equals("right")) { x = x+this.speed; } else if(d.equals("left")) { x = x-this.speed; } else if(d.equals("stop")) { } } void Motion() { //ฟังก์ชั่นเพื่อกำหนดการเคลื่อนที่ตามเข้ม if(x>=500-this.w/2&&y<500-this.w/6) { d = "down"; } else if(y>=500-this.w/6&&x>this.w/2) { d = "left"; } else if(x<=this.w/2&&y>(this.w-this.w/3)/2) { d = "up"; } else if(y<=this.w/6+2*w/15&&x<500-this.w/2) { d = "right"; } } void Pressed() { //ฟังก์ชั่นเพื่อการกด UFO float star1 = sqrt((w/2)*(w/2)-(w/6)*(w/6)); float h1 = this.x+star1; float h2 = this.x-star1; float star2 = sqrt((h1-mouseX)*(h1-mouseX)+(this.y-mouseY)*(this.y-mouseY)); float star3 = sqrt((h2-mouseX)*(h2-mouseX)+(this.y-mouseY)*(this.y-mouseY)); float star4 = star2+star3; if(star4<=w&&mousePressed) { if(stop==0&&i%7==0) { d = "stop"; stop = 1; } else if(stop==1&&i%10==0) { stop = 0; } } float star5 = sqrt(((w-w/3)/2)*((w-w/3)/2)-(w/6)*(w/6)); float h3 = this.x+star1; float h4 = this.x-star1; float star6 = sqrt((h3-mouseX)*(h3-mouseX)+(y-2*w/15-mouseY)*(y-2*w/15-mouseY)); float star7 = sqrt((h4-mouseX)*(h4-mouseX)+(y-2*w/15-mouseY)*(y-2*w/15-mouseY)); float star8 = star6+star7; if(star8<=w&&mousePressed) { if(stop==0&&i%7==0) { d = "stop"; stop = 1; } else if(stop==1&&i%10==0) { stop = 0; } } if(stop==1) { d = "stop"; } i = i+1; } }

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

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