Enjin permainan

Tersedia

1. Menulis permainan pertama anda pada enjin permainan

Apabila melaksanakan sebarang permainan komputer, terdapat tiga peringkat:

  1. Memulakan permainan. Ini termasuk pelbagai tindakan persediaan: menetapkan saiz padang permainan dan melukisnya, mencipta dan menyediakan objek permainan dalam kedudukan awalnya, serta sebarang tindakan lain yang perlu dilakukan pada permulaan permainan.
  2. Bermain permainan. Ini mungkin termasuk objek permainan bergerak, tindakan pemain, mata penjumlahan yang diperoleh, serta sebarang tindakan lain yang mesti dilakukan pada selang masa yang tetap atau sebagai tindak balas kepada klik butang dan tekanan kekunci.
  3. Menamatkan permainan. Ini mungkin termasuk menghentikan animasi, mesej menang/kalah dan sebarang tindakan lain yang perlu dilakukan pada penghujung permainan.

Kami kini akan melalui ketiga-tiga peringkat mengikut urutan dan melihat cara enjin permainan CodeGym boleh membantu memudahkan proses ini.


2. Memulakan permainan

Apabila anda menggunakan enjin permainan CodeGym, permulaan permainan hanya terdiri daripada dua langkah:

Langkah 1: Buat kelas utama permainan

Untuk mencipta permainan anda sendiri berdasarkan enjin permainan CodeGym, anda perlu mencipta kelas dan menjadikannya melanjutkan kelas Permainan (com.codegym.engine.cell.Game). Ini akan memberi kelas anda keupayaan untuk memanggil kaedah pada enjin permainan , dan enjin akan dapat memanggil kaedah kelas anda . Contoh:

import com.codegym.engine.cell.Game;

public class MySuperGame extends Game {
  ...
}

Langkah 2: Gantikan initialize()kaedah

Dalam initialize()kaedah tersebut, anda melakukan semua tindakan yang diperlukan untuk memulakan permainan: mencipta medan permainan, mencipta semua objek permainan, dsb. Anda hanya perlu mengisytiharkan kaedah ini dalam kelas yang mewarisi kelas Permainan. Contoh:

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
  }
}

Kaedahnya initialize()sama dengan main()kaedah. Ia adalah titik masuk dari mana semua kod permainan anda mula dilaksanakan.



3. Mewujudkan padang permainan

Mewujudkan padang permainan juga merupakan proses dua langkah:

Langkah 1: Bahagikan padang permainan kepada sel

Enjin permainan membahagikan seluruh padang permainan ke dalam sel. Saiz minimum ialah 3×3, dan maksimum ialah 100×100.

Saiz padang permainan adalah malar setelah dibuat. Dimensi mendatar dan menegak tidak semestinya sama. Sebagai contoh, lebar 7 dan ketinggian 9:

Sila ambil perhatian bahawa penomboran sel bermula dari sudut kiri atas.

Untuk menetapkan saiz padang permainan, gunakan void setScreenSize(int width, int height)kaedah. Ia menetapkan saiz padang permainan. Parameternya ialah bilangan sel dalam dimensi mendatar ( width) dan menegak ( height). Ia biasanya dipanggil sekali apabila permainan bermula. Contoh:

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);
      ...
   }
}

Semasa menulis permainan, anda mungkin perlu mendapatkan lebar dan ketinggian semasa padang permainan. Kaedah yang sepadan ialah int getScreenWidth()dan int getScreenHeight().

Langkah 2: Hidupkan/matikan grid (pilihan)

Jika anda tidak suka mempunyai grid hitam yang memisahkan sel-sel padang permainan anda, maka anda boleh mematikannya.

Kaedah ini void showGrid(boolean isShow)membolehkan / melumpuhkan grid yang memisahkan sel. Grid dipaparkan secara lalai. Untuk mematikannya, panggil kaedah ini dan masukkan falsesebagai hujah:

showGrid(false);

Keputusan:

Untuk menghidupkan semula grid, panggil kaedah seperti ini:

showGrid(true);

Keputusan:



4. Program primitif

Mari kita tulis permainan yang sangat primitif yang menggunakan enjin permainan CodeGym. Ia akan melakukan 3 perkara:

  1. Ia akan membahagikan padang permainan kepada 9 sel: 3×3
  2. Ia akan melumpuhkan grid (garisan antara sel)
  3. Sel tengah akan dicat biru dan huruf Xakan ditulis di dalamnya.

Kod akhir kelihatan seperti ini:

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);
   }
}

Dalam contoh ini, medan permainan ditetapkan kepada 3x3, grid dimatikan dan huruf orenX pada separuh daripada ketinggian sel diletakkan di dalam sel tengah dengan latar belakang biru . Ini akan menjadi perkara pertama yang pemain lihat apabila permainan bermula.


Komen
  • Popular
  • Baru
  • Tua
Anda mesti log masuk untuk meninggalkan ulasan
Halaman ini tidak mempunyai sebarang ulasan lagi