CodeGym/Java Course/All lectures for ID purposes/Menyelam jauh ke dalam mesin game

Menyelam jauh ke dalam mesin game

Tersedia

1. Bekerja dengan sel-sel di lapangan bermain

Sangat menyenangkan bahwa kami dapat membagi lapangan bermain menjadi sel-sel. Tapi apa yang bisa kita lakukan dengan sel itu sendiri?

Untuk setiap sel lapangan permainan, kita dapat mengatur:

  • warna sel (warna latar belakang sel);
  • teks (bisa berupa teks atau angka);
  • warna teks;
  • ukuran teks sebagai persentase dari ukuran sel.

Mari pertimbangkan metode untuk bekerja dengan sel-sel di lapangan bermain:

void setCellColor(int x, int y, Color color)mengatur warna sel dengan koordinat (x, y)sama dengan color.

Contoh:

setCellColor(0, 0, Color.RED);
setCellColor(3, 6, Color.BLACK);
setCellColor(6, 8, Color.NONE);

Color getCellColor(int x, int y)mengembalikan warna sel dengan koordinat (x, y).

Contoh:

Color myColor = getCellColor(2, 0);

void setCellValue(int x, int y, String value)menugaskan teks ke dalam String valuesel dengan koordinat (x, y).

Contoh:

setCellValue(3, 3, "text");
setCellValue(0, 8, "W");
setCellValue(4, 1, "2222");
setCellValue(6, 6, "");

String getCellValue(int x, int y)mengembalikan teks yang terkandung dalam sel dengan koordinat (x, y).

Contoh:

String s = getCellValue(3, 3);
System.out.println(getCellValue(4, 1));

void setCellTextSize(int x, int y, int size)mengatur ukuran teks dalam sel dengan koordinat (x, y), di mana sizetinggi teks sebagai persentase dari tinggi sel.

Contoh:

setCellTextSize(2, 0, 70); // 70% of the cell height

int getCellTextSize(int x, int y)mengembalikan ukuran konten dalam sel dengan koordinat (x, y).

Contoh:

int size = getCellTextSize(2 , 0);

void setCellNumber(int x, int y, int value)menetapkan nomor int valueke sel dengan koordinat (x, y).

Contoh:

setCellNumber(3, 3, 40);
setCellNumber(0, 8, -8);
setCellNumber(4, 1, 2222);
setCellNumber(6, 6, 0);

int getCellNumber(int x, int y)mengembalikan nomor yang terkandung dalam sel dengan koordinat (x, y). Jika sel tidak berisi angka, ia mengembalikan 0.

Contoh:

int i = getCellNumber(3, 3);
System.out.println(getCellNumber(4, 1));

void setCellTextColor(int x, int y, Color color)mengatur warna konten (teks) sel dengan koordinat (x, y).

Contoh:

setCellTextColor(2, 1, Color.GREEN);
setCellTextColor(0, 1, Color.NONE);

Color getCellTextColor(int x, int y)mengembalikan warna konten (teks) sel dengan koordinat (x, y).

Contoh:

Color textColor = getCellTextColor(1, 3);

Untuk kenyamanan Anda, ada beberapa setCellValueEx()metode dengan set parameter yang berbeda:

void setCellValueEx(int x, int y, Color cellColor, String value)menyetel warna latar belakang dan teks sel dengan koordinat masing-masing (x, y)sama dengan cellColordan value.

Contoh:

setCellValueEx(0, 2, Color.BLUE, "56");

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)mengatur warna latar belakang, teks, dan warna teks sel dengan koordinat masing-masing (x, y)sama dengan cellColor, value, dan textColor.

Contoh:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);

void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize);mengatur warna latar belakang, teks, warna teks, dan ukuran teks sel dengan koordinat masing-masing (x, y)sama dengan cellColor, value, textColor, dan textSize.

Contoh:

setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);


2. Bekerja dengan warna

Mesin game CodeGym memiliki Colortipe khusus yang berisi nilai unik untuk 148 warna. Ini juga memiliki nilai khusus NONEyang mewakili tidak adanya warna.

Contoh bekerja dengan warna

Color myColor = Color.WHITE;  // The color white is assigned to the myColor variable.
Color redColor = Color.RED; // The color red is assigned to the redColor variable.
Color blueColor = Color.BLUE; // The color blue is assigned to the blueColor variable.

Anda dapat mewarnai sel merah menggunakan perintah:

setCellColor(0, 2, Color.RED);

Anda dapat memeriksa apakah suatu sel memiliki warna tertentu dengan perintah seperti:

if (getCellColor(0,2) == Color.GREEN)
{
}

Terkadang Anda mungkin perlu mendapatkan larik dari setiap warna yang memungkinkan. Untuk melakukan ini, gunakan values()metode ini.

Contoh:

// An array containing every available color is assigned to the colors variable.
Color[] colors = Color.values();

Mendapatkan indeks warna dalam palet warna sangat mudah dilakukan — cukup gunakan ordinal()metode:

Color color = Color.RED;
int redIndex = color.ordinal(); // Index of the color red

int blueIndex = Color.BLUE.ordinal(); // Index of the color blue

Anda juga dapat dengan mudah mendapatkan warna dengan indeksnya:

// The color whose index is 10 in the Color enum is assigned to the color variable.
Color color = Color.values()[10];


3. Kotak dialog

Di akhir permainan, kita perlu memberi tahu pemain apakah dia menang atau kalah. Untuk ini dan kesempatan lainnya, mesin game CodeGym memiliki void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)metode khusus, yang menampilkan kotak dialog dengan messagepesan tersebut.
Parameter dari metode ini adalah:

  • cellColoradalah warna latar belakang kotak dialog
  • messageadalah teks pesan
  • textColoradalah warna teks pesan
  • textSizeadalah ukuran teks pesan

Kotak dialog menutup sendiri jika pengguna menekan spasi atau mengklik kotak dialog dengan mouse.

Contoh pemanggilan metode ini:

// Display a dialog box with a message
showMessageDialog(Color.BLACK, "EPIC FAIL", Color.RED, 80);


4. Metode utilitas

Saat menulis game, Anda akan sering menggunakan angka acak. Untuk memudahkan mendapatkan angka acak, Anda dapat menggunakan metode utilitas mesin game:

int getRandomNumber(int max)mengembalikan nomor acak dari 0hingga (max–1)inklusif.

int getRandomNumber(int min, int max)mengembalikan nomor acak dari minhingga (max–1)inklusif.


5.JDK 11+

Saat menjalankan program Anda dari IntelliJ IDEA, kelas yang mewarisi kelas Game dapat menghasilkan kesalahan berikut:

Error: JavaFX runtime components are missing, and are required to run this application

Dalam hal ini, untuk setiap kelas tersebut, Anda perlu melakukan langkah-langkah ini satu kali:
  1. Buka JalankanEditKonfigurasi
  2. Untuk nilai opsi VM , masukkan yang berikut ini:
    --module-path ./lib/javafx-sdk-16/lib --add-modules=javafx.controls,javafx.fxml,javafx.base

    PERHATIAN:

    Di versi IntelliJ IDEA terbaru, kolom "Opsi VM" tidak ditampilkan secara default. Untuk menampilkannya, tekan ALT+V

  3. Tekan: TerapkanOK
  4. Jalankan permainan.
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar