วันอังคารที่ 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;
}
}
ป้ายกำกับ:
Lap7
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น