1. การเขียนเกมแรกของคุณบนเอนจิ้นเกม
![](https://cdn.codegym.cc/images/article/7e7f4914-7343-4837-b3a0-00516cbaefa6/1080.jpeg)
เมื่อติดตั้งเกมคอมพิวเตอร์ใดๆ จะมีสามขั้นตอน:
- กำลังเริ่มต้นเกม ซึ่งรวมถึงการดำเนินการเตรียมการต่างๆ: การกำหนดขนาดของสนามแข่งขันและการวาดภาพ การสร้างและการตั้งค่าวัตถุในเกมในตำแหน่งเริ่มต้น ตลอดจนการดำเนินการอื่นๆ ที่ต้องทำในตอนเริ่มเกม
- การเล่นเกม ซึ่งอาจรวมถึงการเคลื่อนย้ายวัตถุในเกม การกระทำของผู้เล่น การนับคะแนนที่ได้รับ ตลอดจนการกระทำอื่นๆ ที่ต้องทำในช่วงเวลาปกติหรือเพื่อตอบสนองต่อการคลิกปุ่มและการกดปุ่ม
- จบเกม ซึ่งอาจรวมถึงการหยุดแอนิเมชั่น ข้อความชนะ/แพ้ และการกระทำอื่นๆ ที่ต้องทำเมื่อจบเกม
ตอนนี้เราจะอธิบายทั้งสามขั้นตอนตามลำดับและดูว่าเอ็นจิ้นเกม CodeGym สามารถช่วยให้กระบวนการนี้ง่ายขึ้นได้อย่างไร
2. การเริ่มต้นเกม
เมื่อคุณใช้เอ็นจิ้นเกม CodeGym การเริ่มต้นเกมประกอบด้วยสองขั้นตอนเท่านั้น:
ขั้นตอนที่ 1: สร้างคลาสหลักของเกม
ในการสร้างเกมของคุณเองโดยใช้เอนจิ้นเกม CodeGym คุณต้องสร้างคลาสและทำให้ขยายคลาสเกม (com.codegym.engine.cell.Game) สิ่งนี้จะทำให้ชั้นเรียนของคุณสามารถเรียกใช้เมธอดบนเอ็นจิ้นเกมได้และเอนจิ้นจะสามารถเรียกเมธอดของคลาสของคุณได้ ตัวอย่าง:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
ขั้นตอนที่ 2: แทนที่initialize()
วิธีการ
ในinitialize()
เมธอด คุณดำเนินการทั้งหมดที่จำเป็นเพื่อเริ่มเกม: สร้างสนามแข่งขัน สร้างออบเจกต์เกมทั้งหมด ฯลฯ คุณเพียงแค่ต้องประกาศเมธอดนี้ในคลาสที่สืบทอดคลาสเกม ตัวอย่าง:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all the actions to initialize the game and its objects
}
}
วิธีการ นี้initialize()
คล้ายคลึงกับmain()
วิธีการ เป็นจุดเริ่มต้นที่รหัสเกมทั้งหมดของคุณจะเริ่มดำเนินการ
3. การสร้างสนามเด็กเล่น
การสร้างสนามเด็กเล่นเป็นกระบวนการสองขั้นตอน:
ขั้นตอนที่ 1: แบ่งสนามเด็กเล่นออกเป็นเซลล์
เอ็นจิ้นเกมแบ่งสนามเด็กเล่นทั้งหมดออกเป็นเซลล์ ขนาดต่ำสุดคือ 3×3 และสูงสุดคือ 100×100
ขนาดของสนามเด็กเล่นจะคงที่เมื่อสร้างขึ้น ขนาดแนวนอนและแนวตั้งไม่จำเป็นต้องเหมือนกัน ตัวอย่างเช่น ความกว้าง 7 และความสูง 9:
โปรดทราบว่าการนับเซลล์จะเริ่มต้นจากมุมซ้ายบน
ในการกำหนดขนาดของสนามเด็กเล่นให้ใช้void setScreenSize(int width, int height)
วิธีการ กำหนดขนาดของสนามแข่งขัน พารามิเตอร์คือจำนวนเซลล์ในมิติแนวนอน ( width
) และแนวตั้ง ( height
) โดยปกติจะเรียกเพียงครั้งเดียวเมื่อเริ่มเกม ตัวอย่าง:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override public void initialize()
{
// Set the field size to 7x9 cells
setScreenSize(7, 9);
...
}
}
เมื่อเขียนเกม คุณอาจต้องทราบความกว้างและความสูงปัจจุบันของสนามแข่งขัน วิธีการที่เกี่ยวข้องคือint getScreenWidth()
และint getScreenHeight()
ขั้นตอนที่ 2: เปิด/ปิดกริด (ไม่บังคับ)
หากคุณไม่ต้องการให้มีเส้นตารางสีดำมาคั่นระหว่างเซลล์ในสนามแข่งขันของคุณ คุณก็สามารถปิดได้
วิธีvoid showGrid(boolean isShow)
การเปิด/ปิดกริดที่แยกเซลล์ ตารางจะแสดงตามค่าเริ่มต้น หากต้องการปิด ให้เรียกเมธอดนี้และส่งผ่านfalse
เป็นอาร์กิวเมนต์:
showGrid(false);
ผลลัพธ์:
หากต้องการเปิดกริดอีกครั้ง ให้เรียกใช้เมธอดดังนี้:
showGrid(true);
ผลลัพธ์:
4. โปรแกรมดั้งเดิม
มาเขียนเกมดั้งเดิมที่ใช้เอนจิ้นเกม CodeGym กัน จะทำ 3 อย่างคือ
- มันจะแบ่งสนามเด็กเล่นออกเป็น 9 เซลล์: 3×3
- มันจะปิดการใช้งานเส้นตาราง (เส้นระหว่างเซลล์)
- เซลล์กลางจะถูกทาสีฟ้าและตัวอักษร
X
จะถูกเขียนไว้
รหัสสุดท้ายมีลักษณะดังนี้:
public class MySuperGame extends Game
{
@Override
public void initialize()
{
// Create a 3x3 playing field
setScreenSize(3, 3);
// Disable displaying the grid
showGrid(false);
// Change the background of the central cell to blue and display "X" in it
setCellValueEx(1, 1, Color.BLUE, "Х", Color.ORANGE, 50);
}
}
ในตัวอย่างนี้ ฟิลด์สำหรับเล่นถูกกำหนดเป็น 3x3 กริดถูกปิด และใส่ตัวอักษรสีส้ม ที่ครึ่งหนึ่งของความสูงเซลล์ในเซลล์ตรงกลางที่มี พื้นหลังสีน้ำเงิน นี่จะเป็นสิ่งแรกที่ผู้เล่นเห็นเมื่อเริ่มเกมX