float [] y = {
300, 300, 300,
300
}; //Array 1 มิติชุดนี้ใช้สำหรับเก็บค่าการเคลื่อนไหวของเต่าบนแกน
Y ซึ่งใช้ในฟังก์ชั่น Turtle(int delay) สำหรับระบุเต่าแต่ละตัวให้เคลื่อนไหวแบบเดียวกัน
float [] xPosition = {
150, 250, 350,
450
}; // Array 1 มิติชุดนี้ใช้สำหรับกำหนดตำแหน่งของเต่าทั้ง
4 ตัวในเกม บนแกน X
int
xTurtleOnMenu = 50; //กำหนดค่าตัวแปรสำหรับใช้เป็นตัวกำหนดการเคลื่อนไหวของเต่าบนหน้าเมนู โดยให้เคลื่อนไหวบนแกน X ใช้ในฟังก์ชั่น NewTurtles() และ Menu()
int yTurtleOnMenu = 350; //กำหนดค่าตัวแปรสำหรับใช้เป็นตัวกำหนดการเคลื่อนไหวของเต่าบนหน้าเมนู
โดยให้เคลื่อนไหวบนแกน Y ใช้ในฟังก์ชั่น
NewTurtles() และ Menu()
int x = 50; //กำหนดตัวแปรชนิด
Global variable เพื่อให้แทนค่าได้ทั้งฟังก์ชั่น
สำหรับตัวนี้ ใช้ในการกำหนดการเคลื่อนไหว และแทนค่าตัวเลขต่างๆ รวมทั้งใช้ในเงื่อนไข
int yMovement; //กำหนดตัวแปรสำหรับการคำนวณ และมีค่าในตอนเล่นเกม
ตัวแปรตัวนี้ใช้ในการทำให้ผู้เล่นเคลื่อนไหวไปพร้อมกับกล่องโดยกำหนดไว้ในฟังก์ชั่นวาดเส้น
สี่เหลี่ยม และวงรี กำหนดใช้ใช้งานใน 4 ฟังก์ชั่น เช่น IsDead(), Player(),
Box(), และ keyPressed()
int turtleRandom = 0; //int(random(0,
3)); หรือกำหนดเพื่อใช้ในการสุ่มตัวแปรตั้งแต่ 0 ถึง 3 เพื่อการกำหนดการเคลื่อนไหวของเต่าในเกม
ให้มีการเคลื่อนไหวแบบสุ่มเลือกตามฟังก์ชั่น
int [] count = new int [4]; //กำหนดให้ตัวแปร count เป็น array ใหม่สี่ตัว เพื่อให้ใช้ในการนับ และระบุตัวเต่า ตั้งแต่ตัวที่ 1 ถึง 4
int highscore = 0; //กำหนดตัวแปรเพื่อนับคะแนนสูงสุดในแต่ละครั้งที่เล่นเกม โดยเริ่มจาก 0
int backAndforth; //กำหนดตัวแปรไว้สำหรับนับจำนวนรอบของการไปกลับทั้งสองฝั่งในแต่ละครั้ง
int d = 1; //กำหนดตัวแปรสำหรับนับเวลาในการเคลื่อนไหวของเต่า
int backdrop = 0; //กำหนดตัวแปรตัวนี้สำหรับการสร้างฉากแต่ละฉากในเกม backdrop ในภาษาอังกฤษ แปลว่า ฉาก หรือวิวประกอบหลังภาพ ถ้าค่า backdrop เท่ากับ 1 คือเมนู แต่ถ้าเท่ากับ 2 เป็นหน้า Game Over
int SmoothOrStep; //ตัวแปรตัวนี้กำหนดขึ้นเพื่อควบคุมการเคลื่อนไหวของเต่าให้เป็นแบบ Smooth
หรือแบบราบรื่น และแบบ Step หรือแบบทีละช้าๆ
int delay = 0; //ตัวแปรตัวนี้กำหนดขึ้นเพื่อควบคุมการเคลื่อนไหวของเต่า
void setup() { //การใช้ฟังก์ชัน void เป็นการใช้ฟังก์ชันที่ไม่มีการส่งค่ากลับ และเราใช้ void
setup เป็นการใช้ฟังก์ชันในการประกาศว่าจะกำหนดค่าหรือตั้งค่าอะไรบางอย่าง
และฟังก์ชันนี้ก็จำเป็นสำหรับพื้นฐาน Animation
size(600, 400); //ฟังก์ชั่นสำหรับการกำหนดขนาดของพื้นที่
หรือ size(width, height)
background(98, 255, 243); //ฟังก์ชั่นสำหรับการเติมสีในพื้นหลัง
โดยเติมตามแม่สี หรือเครื่องหมาย # ในเครื่องมือ Color
Selector โดยสี่ที่ใส่ไปนี้คือ สีฟ้าคราม
สำหรับการตกแต่งท้องฟ้าในเกม
}
void
draw() { //การใช้ฟังก์ชัน
void เป็นการใช้ฟังก์ชันที่ไม่มีการส่งค่ากลับ
และเราใช้ void draw เป็นการใช้ฟังก์ชันในการประกาศว่าเราต้องการจะวาดอะไรบางอย่างลงไป
นอกจากนี้ยังสามารถเรียกใช้ฟังก์ชั่นที่สร้างขึ้นได้
if(backdrop == 0) { //if() คือฟังก์ชั่นสำหรับการกำหนดเงื่อนไข โดย if ตัวนี้กำหนดเงื่อนไขว่า
ในกรณีที่ค่า backdrop เทียบเท่า หรือเท่ากับ 0 หน้าจอที่แสดงจะเป็นหน้าเมนู พร้อมกำหนดเต่าเคลื่อนไหวบนฉาก
Menu();
//ให้ฟังก์ชั่นที่ชื่อว่า Menu หรือฟังก์ชั่นแสดงหน้าจอหลักที่สร้างขึ้น ทำงาน
}
else
if(backdrop == 1) { //คำสั่ง if - else เป็นการกำหนดเงื่อนไขของตัวแปร
(ถ้า-แล้ว) หรือกำหนดเงื่อนไขอีกกรณีหนึ่ง หรือใช้ else
สำหรับการกำหนดเงื่อนไขมากกว่าหนึ่งกรณี ในกรณีนี้ ถ้าค่า backdrop
มีค่าเทียบเท่า หรือเท่ากับ 1 หน้าจอที่แสดงจะเป็นหน้าที่เล่นตามปกติโดยเลือกได้ตามการเล่นแบบ
Smooth หรือ Step
stroke(0); //คำสั่ง stroke
คือการกำหนดสีของเส้น โดยสีที่ใส่ไปนี้คือ สีดำ
Sea(); //เรียกใช้ฟังก์ชั่น Sea() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการสร้างทะเล
TwoShores(); //เรียกใช้ฟังก์ชั่น TwoShores() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการสร้างฝั่งสองฝั่งในเกม
Turtle(delay);
//เรียกใช้ฟังก์ชั่น Turtle() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการสร้างเต่า พร้อมกับมี parameter
ที่ชื่อ delay ซึ่ง parameter เป็นค่าที่สามารถแทนค่าใดๆ ภายในฟังก์ชั่นได้
Box(); //เรียกใช้ฟังก์ชั่น Box() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการสร้างกล่อง
Player(); //เรียกใช้ฟังก์ชั่น Player() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการสร้างตัวผู้เล่น
Score();
//เรียกใช้ฟังก์ชั่น Score() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการนับคะแนน
IsDead();
//เรียกใช้ฟังก์ชั่น IsDead() หรือฟังก์ชั่นที่ออกแบบไว้สำหรับการกำหนดเงื่อนไขในกรณีที่แพ้
}
delay = delay +1; //การกำหนดให้ ตัวแปร delay
ที่เรากำหนดขึ้นเพิ่มค่าทีละ 1 เราจึงเห็นว่า เต่ามีการเคลื่อนไหวช้าลง
เพราะค่า delay ที่เพิ่มขึ้น
}
void TwoShores() { //ฟังก์ชั่นที่สร้างขึ้นสำหรับการสร้างฝั่งสองฝั่ง
fill(#AA7815);
//คำสั่ง fill เป็นคำสั่งใส่สีให้กับรูปทรงต่างๆที่เราสั่งให้วาด
โดยเลข 3 ตัวในวงเล็บมีลำดับแม่สีดังนี้คือ (Red,
Green, Blue) หรือใส่ค่าของสีตามเครื่องหมาย # ในเครื่องมือ Color Selector โดยสีที่ใส่ไปนี้คือ
สีน้ำตาล สำหรับฝั่งที่เป็นจุดเริ่มต้น
rect(0, 200, 100, 200); //คำสั่ง rect เป็นการสั่งให้วาดรูปสี่เหลี่ยมด้านเท่า
คือ สี่เหลี่ยมจัตุรัสหรือผืนผ้า วาดเป็นโครงของลำตัวให้มีความเป็นเหลี่ยม โดยสังเกตได้จาก rect(x, y, width, height)
fill(#0F9817); //สีเขียวสำหรับอีกฝั่งหนึ่งในเกม
rect(500, 200, 100, 200);
fill(#BF9443); //สีน้ำตาลอ่อนสำหรับวาดกล่อง
rect(520, 120, 80, 80); //วาดสี่เหลี่ยมสำหรับตัวกล่อง
fill(#F2C211); //สีเหลือง
rect(533, 133, 55, 55); //วาดสี่เหลี่ยมซ้อนเพื่อทำให้ดูเหมือนกล่องมากขึ้น
} //ฟังก์ชั่นตัวนี้ถูกเรียกใช้ในฟังก์ชั่นหลักสำหรับการวาด
หรือ void draw
void Sea() { //ฟังก์ชั่นที่สร้างขึ้นสำหรับการวาดทะเล
เรียกใช้ในฟังก์ชั่นหลักสำหรับการวาด void draw เช่นกัน
fill(#0F8598); //สีน้ำเงินเข้ม
rect(100, 300, 600, 500); //วาดน้ำทะเล
}
void Turtle(int delay) { //ฟังก์ชั่นที่สร้างขึ้นสำหรับการสร้างเต่า พร้อมมี parameter
background(98, 255, 243); //สีฟ้าคราม
นำพื้นหลังมาซ้อนกันเพื่อไม่ให้เกิดการลบสี
Sea(); //เรียกใช้ฟังก์ชั่นสำหรับการวาดทะเล
TwoShores(); //เรียกใช้ฟังก์ชั่นสำหรับการวาดฝั่งสองฝั่ง
fill(#5BFA30); //เติมสีเขียวอ่อนสำหรับคอเต่า
ellipse(xPosition[0]+35, y[0]-25, 35,
35); //ฟังก์ชั่นสำหรับการวาดวงรี
โดยดูได้จาก ellipse(x, y, width, height)
ellipse(xPosition[1]+35, y[1]-25, 35,
35);
ellipse(xPosition[2]+35, y[2]-25, 35,
35);
ellipse(xPosition[3]+35, y[3]-25, 35,
35); //วาดคอเต่าทั้ง 4 ตัว
fill(#FFFFFF); //เติมสีขาวสำหรับตาขาวของเต่า
ellipse(xPosition[0]+40, y[0]-30, 12,
12);
ellipse(xPosition[1]+40, y[1]-30, 12,
12);
ellipse(xPosition[2]+40, y[2]-30, 12,
12);
ellipse(xPosition[3]+40, y[3]-30, 12,
12); //วาดตาขาวของเต่าทั้ง 4 ตัว
fill(0); //เติมสีดำสำหรับลูกตาดำของเต่า
ellipse(xPosition[0]+42, y[0]-30, 7,
7);
ellipse(xPosition[1]+42, y[1]-30, 7,
7);
ellipse(xPosition[2]+42, y[2]-30, 7,
7);
ellipse(xPosition[3]+42, y[3]-30, 7,
7); //วาดลูกตาดำของเต่าทั้ง 4 ตัว
fill(#5BFA30); //เติมสีเขียวอ่อนสำหรับกระดองเต่า
ellipse(xPosition[0], y[0], 70, 40);
ellipse(xPosition[1], y[1], 70, 40);
ellipse(xPosition[2], y[2], 70, 40);
ellipse(xPosition[3], y[3], 70, 40); //วาดกระดองเต่าทั้ง 4 ตัว
fill(#EBF013); //เติมสีเหลืองอ่อนสำหรับที่เหยียบบนกระดองเต่า
ellipse(xPosition[0], y[0]-10, 50,
20);
ellipse(xPosition[1], y[1]-10, 50,
20);
ellipse(xPosition[2], y[2]-10, 50,
20);
ellipse(xPosition[3], y[3]-10, 50,
20); //วาดกระดองเต่าทั้ง 4 ตัว
fill(#35AF23); //เติมสีเขียวสำหรับครีบเต่า
ellipse(xPosition[0]-30, y[0]+22, 21,
30);
ellipse(xPosition[0]+30, y[0]+22, 21,
30);
ellipse(xPosition[1]-30, y[1]+22, 21,
30);
ellipse(xPosition[1]+30, y[1]+22, 21,
30);
ellipse(xPosition[2]-30, y[2]+22, 21,
30);
ellipse(xPosition[2]+30, y[2]+22, 21,
30);
ellipse(xPosition[3]-30, y[3]+22, 21,
30);
ellipse(xPosition[3]+30, y[3]+22, 21,
30); //วาดครีบของเต่าทั้ง 4 ตัว
if(turtleRandom == 0) { //กำหนดเงื่อนไขสำหรับเต่าตัวที่หนึ่ง
count[0] = count[0]+1; //ระบุให้ค่า count ที่ตำแหน่งแรกใน
array มีค่าเพิ่มขึ้นทีละ 1 ไปเรื่อยๆ
ในเงื่อนไขนี้
if(y[0] == 300) { //ในกรณีที่ค่า y ที่ตำแหน่งที่หนึ่งใน
array มีค่าเทียบเท่า 300
fill(#EA5A00); //เติมสีส้มเกือบแดง
ellipse(xPosition[0]+35,
y[0]-25, 35, 35);
ellipse(xPosition[0],
y[0], 70, 40);
ellipse(xPosition[0],
y[0]-10, 50, 20);
ellipse(xPosition[0]-30,
y[0]+22, 21, 30);
ellipse(xPosition[0]+30,
y[0]+22, 21, 30); //เต่าตัวที่หนึ่งซึ่งมีการเคลื่อนไหวตามพิกัดบนแกน
Y แต่มีตำแหน่งที่แน่นอนบนแกน X
fill(#FFFFFF); //เติมสีขาว
ellipse(xPosition[0]+40,
y[0]-30, 12, 12); //ตาสีขาวของเต่า
fill(0); //สีดำ
ellipse(xPosition[0]+42,
y[0]-30, 7, 7); //ตาสีดำของเต่า
}
if((count[0] >= 30) &&
(count[0] <= 126) && (y[0] >= 300) && (y[0] <= 380)) {
//กำหนดเงื่อนไขสำหรับการเคลื่อนไหวสำหรับเต่าตัวแรก
fill(#EA5A00);
ellipse(xPosition[0]+35,
y[0]-25, 35, 35);
ellipse(xPosition[0],
y[0], 70, 40);
ellipse(xPosition[0],
y[0]-10, 50, 20);
ellipse(xPosition[0]-30,
y[0]+22, 21, 30);
ellipse(xPosition[0]+30,
y[0]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[0]+40,
y[0]-30, 12, 12);
fill(0);
ellipse(xPosition[0]+42,
y[0]-30, 7, 7);
if(SmoothOrStep
== 1) { //กำหนดเงื่อนไข ถ้าค่า SmoothOrStep มีค่าเทียบเท่ากับ 1 จะกำหนดให้มีการเคลื่อนไหวแบบ Smooth
y[0]
= y[0]+0.8; //การเคลื่อนไหวของเต่าจะมีการเคลื่อนไหวลงอย่างช้าๆ
บนพิกัด y ตามค่า y ที่ตำแหน่งแรกใน Array
โดย y[0] มีค่าเพิ่มขึ้นทีละ 0.8
}
else
if(SmoothOrStep == 2) { //กำหนดเงื่อนไข
ถ้าค่า SmoothOrStep มีค่าเทียบเท่ากับ 1 จะกำหนดให้มีการเคลื่อนไหวแบบ Step
if(delay%10
== 0) { //ถ้าค่า delay หาร 10 ลงตัว
y[0]
= y[0]+8; //การเคลื่อนไหวของเต่าจะมีการเคลื่อนไหวลงอย่างราบรื่น
บนพิกัด y ตามค่า y ที่ตำแหน่งแรกใน Array
โดย y[0] มีค่าเพิ่มขึ้นทีละ 8
}
}
}
if(y[0] >=
370) { //กำหนดเงื่อนไขให้เต่าตัวแรกกลับมาที่เดิม
y[0] =
370;
count[0]
= 200;
}
if((y[0] >= 300) &&
(count[0] >= 200)) {
fill(#5BFA30);
ellipse(xPosition[0]+35,
y[0]-25, 35, 35);
ellipse(xPosition[0],
y[0], 70, 40);
ellipse(xPosition[0],
y[0]-10, 50, 20);
ellipse(xPosition[0]-30,
y[0]+22, 21, 30);
ellipse(xPosition[0]+30,
y[0]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[0]+40,
y[0]-30, 12, 12);
fill(0);
ellipse(xPosition[0]+42,
y[0]-30, 7, 7);
if(SmoothOrStep ==
1) { //ถ้าค่า SmoothOrStep เทียบเท่ากับ 1 การเคลื่อนไหวของเต่าจะเป็น Smooth
y[0] =
y[0]-0.8;
}
else if(SmoothOrStep
== 2) { //ถ้าค่า SmoothOrStep เทียบเท่ากับ 1 การเคลื่อนไหวของเต่าจะเป็น Step
if(delay%10
== 0) {
y[0]
= y[0]-8;
}
}
} //ทั้งหมดนี้เป็นการกำหนดการเคลื่อนไหวสำหรับเต่าตัวแรก และเงื่อนไขสำหรับเต่าตัวอื่นก็ไม่แตกต่างกันมาก
แต่เราต้องนำส่วนประกอบของเต่าแต่ละตัวมาประกอบกันก่อนกำหนดเงื่อนไขทุกครั้ง
if(count[0] >= int (random(240,
1000))) { //ถ้าค่า count[0] มีค่ามากกว่าหรือเท่ากับจำนวนเต็มที่สุ่มตั้งแต่ 240 ถึง 1,000
turtleRandom =
int(random(0, 4)); //turtleRandom มีค่าเท่ากับจำนวนเต็มที่สุ่มตั้งแต่
0 ถึง 4
กำหนดไว้สำหรับการเคลื่อนไหวแบบสุ่มของเต่า
y[0] = 300;
count[0] = 0;
}
}
if(turtleRandom == 1) { //ถ้าค่า turtleRandom มีค่าเทียบเท่ากับ
1 แล้วการเคลื่อนไหวของเต่าตัวที่สองจะเป็นไปตามผลด้านล่าง
count[1] = count[1]+1; //ค่า count สำหรับ Array
ตัวที่สองมีค่าเพิ่มขึ้นทีละ 1
if(y[1]==300)
{
fill(#EA5A00);
ellipse(xPosition[1]+35,
y[1]-25, 35, 35);
ellipse(xPosition[1],
y[1], 70, 40);
ellipse(xPosition[1],
y[1]-10, 50, 20);
ellipse(xPosition[1]-30,
y[1]+22, 21, 30);
ellipse(xPosition[1]+30,
y[1]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[1]+40,
y[1]-30, 12, 12);
fill(0);
ellipse(xPosition[1]+42,
y[1]-30, 7, 7);
}
if((count[1] >= 30) &&
(count[1] <= 126) && (y[1] >= 300) && (y[1] <= 380)) {
fill(#EA5A00);
ellipse(xPosition[1]+35,
y[1]-25, 35, 35);
ellipse(xPosition[1],
y[1], 70, 40);
ellipse(xPosition[1],
y[1]-10, 50, 20);
ellipse(xPosition[1]-30,
y[1]+22, 21, 30);
ellipse(xPosition[1]+30,
y[1]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[1]+40,
y[1]-30, 12, 12);
fill(0);
ellipse(xPosition[1]+42,
y[1]-30, 7, 7);
if(SmoothOrStep ==
1) {
y[1] =
y[1]+0.8;
}
else
if(SmoothOrStep == 2) {
if(delay%10==0)
{
y[1]
= y[1]+8;
}
}
}
if(y[1] >= 370) {
y[1] = 370;
count[1] = 200;
}
if((y[1] >= 300) &&
(count[1] >= 200)) {
fill(#5BFA30);
ellipse(xPosition[1]+35,
y[1]-25, 35, 35);
ellipse(xPosition[1],
y[1], 70, 40);
ellipse(xPosition[1],
y[1]-10, 50, 20);
ellipse(xPosition[1]-30,
y[1]+22, 21, 30);
ellipse(xPosition[1]+30,
y[1]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[1]+40,
y[1]-30, 12, 12);
fill(0);
ellipse(xPosition[1]+42,
y[1]-30, 7, 7);
if(SmoothOrStep ==
1) {
y[1] =
y[1]-0.8;
}
else
if(SmoothOrStep == 2) {
if(delay%10
== 0) {
y[1]
= y[1]-8;
}
}
}
if(count[1] >= int
(random(240, 1000))) {
turtleRandom =
int(random(0, 4));
y[1] = 300;
count[1] = 0;
}
} //เงื่อนไขสำหรับการเคลื่อนไหวของเต่าตัวที่สองนี้ค่อนข้างคล้ายกับเต่าตัวแรก
แต่มีการเปลี่ยนแปลงเล็กน้อย
if(turtleRandom == 2) { //สำหรับเต่าตัวที่สาม ถ้าค่า turtleRandom
เทียบเท่ากับ 2 ผลจะเป็นตามโค้ดด้านล่าง
count[2] = count[2]+1; //ค่า count ในตำแหน่งนี้มีค่าเพิ่มขึ้นทีละ
1
if(y[2] == 300) {
fill(#EA5A00);
ellipse(xPosition[2]+35,
y[2]-25, 35, 35);
ellipse(xPosition[2],
y[2], 70, 40);
ellipse(xPosition[2],
y[2]-10, 50, 20);
ellipse(xPosition[2]-30,
y[2]+22, 21, 30);
ellipse(xPosition[2]+30,
y[2]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[2]+40,
y[2]-30, 12, 12);
fill(0);
ellipse(xPosition[2]+42,
y[2]-30, 7, 7);
}
if((count[2] >= 30) &&
(count[2] <= 126) && (y[2] >= 300) && (y[2] <= 380)) {
fill(#EA5A00);
ellipse(xPosition[2]+35,
y[2]-25, 35, 35);
ellipse(xPosition[2],
y[2], 70, 40);
ellipse(xPosition[2],
y[2]-10, 50, 20);
ellipse(xPosition[2]-30,
y[2]+22, 21, 30);
ellipse(xPosition[2]+30,
y[2]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[2]+40,
y[2]-30, 12, 12);
fill(0);
ellipse(xPosition[2]+42,
y[2]-30, 7, 7);
if(SmoothOrStep ==
1) {
y[2] =
y[2]+0.8;
}
else if(SmoothOrStep
== 2) {
if(delay%10
== 0) {
y[2]
= y[2]+8;
}
}
}
if(y[2] >= 370) {
y[2] = 370;
count[2] = 200;
}
if((y[2] >= 300) &&
(count[2] >= 200)) {
fill(#5BFA30);
ellipse(xPosition[2]+35,
y[2]-25, 35, 35);
ellipse(xPosition[2],
y[2], 70, 40);
ellipse(xPosition[2],
y[2]-10, 50, 20);
ellipse(xPosition[2]-30,
y[2]+22, 21, 30);
ellipse(xPosition[2]+30,
y[2]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[2]+40,
y[2]-30, 12, 12);
fill(0);
ellipse(xPosition[2]+42,
y[2]-30, 7, 7);
if(SmoothOrStep ==
1) {
y[2] =
y[2]-0.8;
}
else if(SmoothOrStep
== 2) {
if(delay%10
== 0) {
y[2]
= y[2]-8;
}
}
}
if(count[2] >= int
(random(240, 1000))) {
turtleRandom =
int(random(0, 4));
y[2]
= 300;
count[2] = 0;
}
} //เงื่อนไขในการเคลื่อนไหวของเต่าตัวที่สามนี้คล้ายกับตัวที่หนึ่งและสอง
if((turtleRandom == 3)||( turtleRandom
== 4)) { //ถ้า turtleRandom มีค่าเทียบเท่ากับ 3 หรือ 4
count[3] = count[3]+1; //ค่า count ที่ตำแหน่งนี้มีค่าเพิ่มขึ้นทีละ
1
if(y[3] == 300) {
fill(#EA5A00);
ellipse(xPosition[3]+35,
y[3]-25, 35, 35);
ellipse(xPosition[3], y[3],
70, 40);
ellipse(xPosition[3], y[3]-10,
50, 20);
ellipse(xPosition[3]-30,
y[3]+22, 21, 30);
ellipse(xPosition[3]+30,
y[3]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[3]+40,
y[3]-30, 12, 12);
fill(0);
ellipse(xPosition[3]+42,
y[3]-30, 7, 7);
}
if((count[3] >= 30) && (count[3]
<= 126) && (y[3] >= 300) && (y[3] <= 380)) {
fill(#EA5A00);
ellipse(xPosition[3]+35,
y[3]-25, 35, 35);
ellipse(xPosition[3], y[3],
70, 40);
ellipse(xPosition[3], y[3]-10,
50, 20);
ellipse(xPosition[3]-30,
y[3]+22, 21, 30);
ellipse(xPosition[3]+30,
y[3]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[3]+40,
y[3]-30, 12, 12);
fill(0);
ellipse(xPosition[3]+42,
y[3]-30, 7, 7);
if(SmoothOrStep == 1) {
y[3] = y[3]+0.8;
}
else if(SmoothOrStep == 2) {
if(delay%10
== 0) {
y[3] =
y[3]+8;
}
}
}
if(y[3] >= 370) {
y[3] = 370;
count[3] = 200;
}
if((y[3] >= 300) && (count[3]
>= 200)) {
fill(#5BFA30);
ellipse(xPosition[3]+35,
y[3]-25, 35, 35);
ellipse(xPosition[3], y[3],
70, 40);
ellipse(xPosition[3], y[3]-10,
50, 20);
ellipse(xPosition[3]-30,
y[3]+22, 21, 30);
ellipse(xPosition[3]+30,
y[3]+22, 21, 30);
fill(#FFFFFF);
ellipse(xPosition[3]+40,
y[3]-30, 12, 12);
fill(0);
ellipse(xPosition[3]+42,
y[3]-30, 7, 7);
if(SmoothOrStep == 1) {
y[3] = y[3]-0.8;
}
else if(SmoothOrStep == 2) {
if(delay%10 == 0) {
y[3]
= y[3]-8;
}
}
}
if(count[3] >= int (random(240,
1000))) {
turtleRandom = int(random(0,
4));
y[3] = 300;
count[3] = 0;
}
} //เงื่อนไขสำหรับตัวที่สี่นี้คล้ายกับตัวอื่นๆ
เพียงแค่ดัดแปลงเล็กน้อย
}
void Score() { //ฟังก์ชั่นสำหรับการนับคะแนน
fill(0); //เติมสีดำ
textSize(50); //ฟังก์ชั่นสำหรับการเปลี่ยนขนาดของข้อความ โดยการใส่ตัวเลขลงไปในวงเล็บ
text(highscore, 295, 50); //ฟังก์ชั่นสำหรับการเขียนข้อความที่ตำแหน่งพิกัด
x และ y โดยสังเกตได้จาก text(“Message”,
x, y) ฟังก์ชั่นตัวนี้พิมพ์ค่าคะแนนสูงสุดที่คำนวณได้จากอีกฟังก์ชั่นชุดหนึ่ง
}
void Menu() { //ฟังก์ชั่นที่สร้างสำหรับการสร้างเมนู หรือหน้าจอหลัก
background(62, 189, 227); //กำหนดพื้นหลังสีฟ้า
NewTurtles(xTurtleOnMenu+297, yTurtleOnMenu-150);
//วาดฟังก์ชั่น NewTurtles หรือฟังก์ชั่นเต่าเคลื่อนไหวถอยหลังที่ตำแหน่งตามค่า parameter
NewTwoShores(); //วาดฟังก์ชั่น NewTwoShores หรือฟังก์ชั่นฝั่งสองฝั่งแบบวงรี
SmoothOrStepButton(); //เรียกใช้ฟังก์ชั่น SmoothOrStepButton(); หรือฟังก์ชั่นปุ่มกดบนเมนูเพื่อเลือกการเล่นเกมที่มีการเคลื่อนไหวแบบ Smooth
หรือ Step
if(yTurtleOnMenu < 450) { //ถ้า yTurtleOnMenu มีค่าน้อยกว่า
450
yTurtleOnMenu = yTurtleOnMenu-4;
//yTurtleOnMenu มีค่าลดลงทีละ 4
หรือเต่ามีความเร็วลดลง
}
else if(yTurtleOnMenu < 300) { //กำหนดเงื่อนไขอีกอย่างว่า ถ้า yTurtleOnMenu
มีค่าน้อยกว่า 300
yTurtleOnMenu = yTurtleOnMenu+6;
//yTurtleOnMenu มีค่าเพิ่มขึ้นทีละ 6
หรือเต่ามีความเร็วเพิ่มขึ้น
}
else if(xTurtleOnMenu > 250) { //กำหนดเงื่อนไขอีกอย่างว่า ถ้า xTurtleOnMenu
มีค่ามากกว่า 250
xTurtleOnMenu = xTurtleOnMenu+4;
//xTurtleOnMenu มีค่าเพิ่มขึ้นทีละ 4
}
}
void SmoothOrStepButton() { //ฟังก์ชั่นที่สร้างขึ้นสำหรับปุ่มกด Smooth และ Step
บนหน้าจอหลักเมนู
stroke(#289318); //เติมเส้นสีเขียวเข้ม
strokeWeight(10); //เพิ่มความหนาของเส้น
fill(#31ED16); //สีน้ำตาลเข้ม
rect(125, 30, 360, 90); //สร้างเป็นกล่องชื่อเกม
fill(0);
textSize(55);
text("Turtle Bridge", 131,
92); //พิมพ์ข้อความเพื่อสร้างชื่อเกมบนเมนู
โดยทับบนกล่องที่ระบุไว้
stroke(#E6EA05); //เติมสีเหลือง
fill(#FAA505); //เติมสีส้มเหลือง
rect(90, 160, 200, 90); //สร้างกล่องเป็นกล่องชื่อ Smooth
fill(0);
textSize(50);
text("Smooth", 98, 223); //พิมพ์ข้อความเพื่อสร้างปุ่ม
Smooth
stroke(#E6EA05); //เติมสีเหลืองอ่อน
fill(#FAA505); //เติมสีส้มเหลือง
rect(310, 160, 200, 90); //สร้างกล่องทำเป็นปุ่ม Step
fill(0);
textSize(50);
text("Step", 358, 223); //พิมพ์ข้อความเพื่อสร้างปุ่ม Step
if(mousePressed && mouseX >
90 && mouseX < 290 && mouseY > 160 && mouseY <
250) { //กำหนดเงื่อนไขสำหรับการกดปุ่มภายในกล่อง
Smooth
backdrop = 1;
SmoothOrStep = 1;
}
if(mousePressed && mouseX >
310 && mouseX < 510 && mouseY > 160 && mouseY <
250) { //กำหนดเงื่อนไขสำหรับการกดปุ่มภายในกล่อง
Step
backdrop = 1;
SmoothOrStep = 2;
}
}
void IsDead() { //ฟังก์ชั่นที่กำหนดเงื่อนไขในกรณีที่เล่นแพ้
if((count[0] >= 30) &&
(x == xPosition[0])) {
d =
0;
}
if((count[1] >= 30) &&
(x == xPosition[1])) {
d =
0;
}
if((count[2] >= 30) &&
(x == xPosition[2])) {
d =
0;
}
if((count [3] >= 30) &&
(x == xPosition[3])) {
d = 0; //d = 0
แปลว่า ตัวนับคะแนนหยุดลง
}
if(d == 0) {
background(62, 189, 227);
NewTurtles(xTurtleOnMenu+185,
yTurtleOnMenu-150);
NewTwoShores();
if(yTurtleOnMenu < 450) {
yTurtleOnMenu = yTurtleOnMenu-4;
}
else if(yTurtleOnMenu <
300) {
yTurtleOnMenu = yTurtleOnMenu+6;
}
else if(xTurtleOnMenu >
250) {
xTurtleOnMenu = xTurtleOnMenu+4;
}
fill(#FF3300); //เติมสีแดงบนข้อความ
textSize(60);
text("Game Over", 140, 80); //พิมพ์ข้อความว่า Game Over บนหน้าหลังจากที่เล่นเกมแพ้
fill(#040A6A); //เติมสีน้ำเงินเข้ม
text("Your Score :
"+highscore, 80, 165); //พิมพ์ข้อความว่า
Your Score : คะแนนสูงสุดที่เล่นได้ บนหน้าหลังจากที่เล่นเกมแพ้
เพื่อแสดงให้เห็นว่า เล่นได้คะแนนเท่าไร
fill(#90FF8B); //สีเขียวอ่อน
rect(225, 305, 150, 80); //สร้างกล่องเมนูบนหน้าจอ Game Over เพื่อเป็นปุ่มกดให้ย้อนกลับไปที่หน้าเมนูหลัก
สำหรับการเล่นเกมในครั้งต่อไป
textSize(50);
fill(0);
text("Menu", 235, 363); //พิมพ์ข้อความเมนูบนกล่องเมนู
if(mousePressed && mouseX > 225
&& mouseX < 375 && mouseY > 305 && mouseY < 385)
{ //กำหนดเงื่อนไขสำหรับการกดปุ่มภายในกล่องเมนู
backdrop = 0;
highscore = 0;
d = 1;
x = 50;
yMovement = 0;
}
}
}
void NewTwoShores() { //ฟังก์ชั่นสำหรับการวาดฝั่งสองฝั่งในหน้าจอเมนูหลัก และ Game Over
stroke(53, 95, 53); //สีคราม
strokeWeight(8);
fill(29, 137, 33); //สีเขียว
ellipse(600, 200, 150, 400);
stroke(255, 255, 142); //สีเขียวเข้ม
fill(183, 157, 26); //สีเหลืองทอง
ellipse(0, 200, 150, 400);
}
void NewTurtles(int xt, int yt) { //ฟังก์ชั่นสำหรับการวาดเต่าบนหน้าจอเมนูหลัก
และ Game Over
while(xt < 600) { //while() คือฟังก์ชั่นสำหรับการกำหนดเงื่อนไขแบบลูป
while(yt < 600) { //สร้างลูปสองชั้นเพื่อเพิ่มจำนวนเต่าตามพิกัด
//ครีบเต่าทั้ง
4 แขน
stroke(0);
strokeWeight(1);
fill(45, 121, 40); //สีเขียวเข้ม
ellipse(yt-35, xt-25, 40, 20);
ellipse(yt+35, xt+25, 40, 20);
ellipse(yt-35, xt+25, 40, 20);
ellipse(yt+35, xt-25, 40, 20);
//กระดองของเต่า
fill(224, 174, 36); //สีน้ำตาลอ่อน
ellipse(yt, xt, 80, 60);
//ลวดลายบนกระดองเต่า
line(yt-24, xt-24, yt+24,
xt+24);
line(yt-30, xt+21, yt+30,
xt-21);
line(yt-24, xt-24, yt+24,
xt+24);
line(yt+1, xt-29, yt+1,
xt+30);
line(yt-39, xt, yt+39, xt);
//วงกลมสองวงซ้อนกันกลางกระดอง
เพื่อให้เป็นที่เหยียบเวลาเดินข้าม
fill(255, 95, 3); //สีส้มเกือบแดง
ellipse(yt, xt, 40, 30);
fill(227, 221, 37); //สีเหลืองอ่อน
ellipse(yt, xt, 20, 15);
//หัวของเต่า
fill(66, 211, 53); //สีเขียวอ่อน
ellipse(yt+50, xt, 30, 30);
//ตาของเต่า
fill(#FFFFFF); //สีขาว
ellipse(yt+50, xt-7, 8, 10);
ellipse(yt+50, xt+7, 8, 10);
fill(0); //สีดำ
ellipse(yt+50, xt-7, 5, 5);
ellipse(yt+50, xt+7, 5, 5);
yt = yt+155; //กำหนดระยะห่างระหว่างเต่า
ยิ่งมากขึ้นยิ่งห่างขึ้น แต่จำนวนเต่าอาจน้อยลง
}
xt = xt+50;
}
}
void Player() { //ฟังก์ชั่นสำหรับการสร้างตัวผู้เล่น
strokeWeight(2);
fill(#FFCD81); //เติมสีครีม หรือสีไข่ไก่ สำหรับหัวของคน
line(x-45, 60+yMovement, x, 117+ yMovement);
//วาดแขนซ้าย
line(x, 117+ yMovement, x+45, 60+ yMovement);
//วาดแขนขวา
ellipse(x, 85+ yMovement, 45, 45); //หัวของคน
line(x, 107+ yMovement, x, 172+ yMovement);
//วาดลำตัว
line(x-25, 199+yMovement, x, 172+yMovement);
//วาดขาซ้าย
line(x, 172+yMovement, x+25, 199+yMovement);
//วาดขาขวา
} //กำหนดฟังก์ชั่นด้วย
yMovement เพื่อให้เคลื่อนไหวไปในแนวแกน Y เวลาลงและขึ้นฝั่ง หรือเต่า ส่วน x ทำหน้าที่ในการเคลื่อนไหวไปตามแกน
X
void Box() { //ฟังก์ชั่นที่สร้างขึ้นสำหรับการสร้างกล่องที่คน
หรือผู้เล่นในเกมแบกไว้เหนือหัว
fill(#905F37); //สีน้ำตาล
rect(x-47, 20+ yMovement, 95, 40);
}
void keyPressed() { //ฟังก์ชั่นสำหรับการกดปุ่ม
if(keyCode == RIGHT && backdrop
== 1 && d == 1) { //กำหนดเงื่อนไขสำหรับการกดปุ่มลูกศรขวาว่า
ถ้าค่า backdrop เทียบเท่ากับ 1 และค่า
d เทียบเท่ากับ 1 ให้ทำตามเงื่อนไข
หรือผลลัพธ์ต่างๆ ด้านล่าง
if(x == 450) {
x = 550;
yMovement = yMovement
- 85;
}
if(x == 350) {
x = 450;
}
if(x == 250) {
x = 350;
}
if(x == 150) {
x = 250;
}
if(x
== 50) {
x = 150;
yMovement = yMovement
+ 85;
}
if((x
== 450)||(x == 350)||(x == 250)||(x == 150)||(x == 50)) {
Player();
}
}
if(keyCode == LEFT && backdrop
== 1 && d == 1) { //กำหนดเงื่อนไขสำหรับการกดปุ่มลูกศรซ้ายว่า
ถ้าค่า backdrop เทียบเท่ากับ 1 และค่า
d เทียบเท่ากับ 1 ให้ทำตามเงื่อนไข
หรือผลลัพธ์ต่างๆ ด้านล่าง
if(backdrop == 0) {
x = 50;
yMovement = 0;
highscore = 0;
Menu();
}
if(x == 150) {
x = 50;
yMovement = yMovement-85;
if(backAndforth ==
2) { //กำหนดเงื่อนไขสำหรับนับจำนวนรอบซึ่งในการข้ามไปมาและกลับรวมกัน
2 ครั้ง นับเป็น 1 รอบ
highscore
= highscore + 10; //ค่าคะแนนสูงสุดเพิ่มขึ้นทีละ
10 คะแนน
}
backAndforth = 0; //ถ้าไม่เป็นไปตามเงื่อนไขด้านบน แสดงว่า
ตกน้ำตั้งแต่ตอนแรก เลยไม่ได้จำนวนรอบ
}
if(x == 250) {
x = 150;
}
if(x == 350) {
x = 250;
}
if(x == 450) {
x = 350;
}
if(x == 550) {
x = 450;
yMovement = yMovement
+ 85;
backAndforth = 2;
}
if((x
== 150)||(x == 250)||(x == 350)||(x == 450)||(x == 550)) {
Player();
Box();
}
}
}