1. การเขียนเกมแรกของคุณบนเอนจิ้นเกม

เมื่อติดตั้งเกมคอมพิวเตอร์ใดๆ จะมีสามขั้นตอน:

  1. กำลังเริ่มต้นเกม ซึ่งรวมถึงการดำเนินการเตรียมการต่างๆ: การกำหนดขนาดของสนามแข่งขันและการวาดภาพ การสร้างและการตั้งค่าวัตถุในเกมในตำแหน่งเริ่มต้น ตลอดจนการดำเนินการอื่นๆ ที่ต้องทำในตอนเริ่มเกม
  2. การเล่นเกม ซึ่งอาจรวมถึงการเคลื่อนย้ายวัตถุในเกม การกระทำของผู้เล่น การนับคะแนนที่ได้รับ ตลอดจนการกระทำอื่นๆ ที่ต้องทำในช่วงเวลาปกติหรือเพื่อตอบสนองต่อการคลิกปุ่มและการกดปุ่ม
  3. จบเกม ซึ่งอาจรวมถึงการหยุดแอนิเมชั่น ข้อความชนะ/แพ้ และการกระทำอื่นๆ ที่ต้องทำเมื่อจบเกม

ตอนนี้เราจะอธิบายทั้งสามขั้นตอนตามลำดับและดูว่าเอ็นจิ้นเกม 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 อย่างคือ

  1. มันจะแบ่งสนามเด็กเล่นออกเป็น 9 เซลล์: 3×3
  2. มันจะปิดการใช้งานเส้นตาราง (เส้นระหว่างเซลล์)
  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