
1. Pambuka
Kanggo pangembang, ana telung tahap kanggo implementasi game komputer:-
Inisialisasi game - Tahap iki kalebu tumindak persiapan: nyetel ukuran lapangan dolanan, nggambar lapangan dolanan, nggawe obyek game lan dilebokake ing posisi awal, lan tumindak liyane sing kudu ditindakake ing wiwitan game.
-
Proses game. Tahap iki kalebu obyek game obah, tumindak pemain, njaga skor, lan tumindak liyane sing kudu ditindakake kanthi frekuensi tartamtu utawa nalika tombol ditekan.
-
Game rampung. Tahap iki kalebu animasi mandheg, nglaporake menang utawa kalah, lan tumindak liyane sing kudu ditindakake ing pungkasan game.
2. Initialization game
initialization game kasusun saka mung rong langkah: langkah 1: Nggawe kelas utama game. Kanggo ngembangake game dhewe nggunakake mesin game CodeGym, sampeyan kudu nggawe kelas sing marisi kelasGame
(com.codegym.engine.cell.Game). Iki menehi kelas sampeyan bisa nelpon cara mesin game, lan menehi mesin kemampuan kanggo nelpon cara sampeyan. Tuladhane:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Langkah 2: Ganti metode initialize (). Kabeh tumindak sing dibutuhake kanggo miwiti game bakal kelakon ing cara iki: nggawe lapangan playing, nggawe obyek game, etc.. Sampeyan mung kudu wara-wara cara iki ing kelas sing oleh warisan kelas Game
. Tuladhane:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Here we perform all actions to initialize the game and its objects
}
}
Cara initialize()
iku analog kanggo main()
cara: iku titik wiwitan kanggo kabeh kode ditulis kanggo game.
3. Nggawe lapangan dolanan
Nggawe lapangan playing uga kasusun saka mung rong langkah. Langkah 1: Dibagi lapangan dolanan dadi sel. Kabeh lapangan muter dipérang dadi sel dening mesin game. Ukuran minimal 3x3; maksimal 100x100. Ukuran layar game tetep. Bisa dipérang dadi macem-macem nomer sel. Contone, 7 sel amba karo 9 sel dhuwur:
void setScreenSize(int width, int height)
cara. Iku nyetel ukuran lapangan playing. Parameter kasebut nuduhake jumlah sel kanthi horisontal (jembar) lan vertikal (dhuwur). Biasane disebut sapisan nalika game diwiwiti. Tuladhane:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
@Override
public void initialize() {
// Set the field size to 7 cells x 9 cells
setScreenSize(7, 9);
...
}
}
Nalika nulis game, sampeyan bisa uga kudu njaluk jembaré lan dhuwur lapangan playing saiki. Kanggo nindakake iki, cara int getScreenWidth()
lan int getScreenHeight()
cara bakal migunani. Langkah 2: Nguripake utawa mateni kothak (opsional). Yen sampeyan ora kaya kothak ireng misahake sel ing lapangan playing, sampeyan bisa mateni. Cara kasebut void showGrid(boolean isShow)
nguripake lan mateni kothak. Kanthi gawan, kothak ditampilake. Kanggo mateni, nelpon metode iki kanthi salah minangka argumen:
showGrid(false);
Asil: 
showGrid(true);
4. Program primitif
Punika conto program:
public class MySuperGame extends Game {
@Override
public void initialize() {
// Create a playing field that is 3 cells x 3 cells
setScreenSize(3, 3);
// Turn off the grid
showGrid(false);
// Change the background of the center cell to blue, and display an "X" in it.
setCellValueEx(1, 1, Color.BLUE, "X", Color.ORANGE, 50);
}
}
Ing conto iki, lapangan game disetel kanggo 3x3, kothak dipateni, lan oranye "X" setengah ukuran sel disetel ing latar mburi biru ing sel tengah. Iki bakal dadi bab pisanan sing pemain weruh nalika game diwiwiti.
5. Nggarap sel saka lapangan playing
Kasunyatan manawa kita bisa mbagi lapangan dolanan dadi sel sing apik, nanging apa sing bisa kita lakoni karo sel kasebut? Sampeyan bisa nyetel properti ing ngisor iki kanggo saben sel ing lapangan dolanan:- werna sel (warna latar mburi sel);
- teks (teks utawa nomer);
- werna teks;
- ukuran teks minangka persentasi saka ukuran sel.
-
void setCellColor(int x, int y, Color color)
- nyetel warna sel kanthi koordinat (x, y):setCellColor(0, 0, Color.RED); setCellColor(3, 6, Color.BLACK); setCellColor(6, 8, Color.NONE);
-
Color getCellColor(int x, int y)
- ngasilake warna sel kanthi koordinat (x, y):Color myColor = getCellColor(2, 0);
-
void setCellValue(int x, int y, String value)
- nyetel teks sel kanthi koordinat (x, y) padha karo senar ing parameter nilai:setCellValue(3, 3, "text"); setCellValue(0, 8, "W"); setCellValue(4, 1, "2222"); setCellValue(6, 6, "");
-
String getCellValue(int x, int y)
- ngasilake teks sing ana ing sel kanthi koordinat (x, y):String s = getCellValue(3, 3); System.out.println(getCellValue(4, 1));
-
void setCellTextSize(int x, int y, int size)
- nyetel ukuran isi sel kanthi koordinat (x, y). Parameter ukuran yaiku dhuwur teks minangka persentase dhuwur sel:setCellTextSize(2 , 0, 70); // 70% of the cell height
-
int getCellTextSize(int x, int y)
- ngasilake ukuran isi sel kanthi koordinat (x, y):int size = getCellTextSize(2 , 0);
-
void setCellNumber(int x, int y, int value)
- nyetel teks sel kanthi koordinat (x, y) padha karo nomer ing parameter nilai:setCellNumber(3, 3, 40); setCellNumber(0, 8, -8); setCellNumber(4, 1, 2222); setCellNumber(6, 6, 0);
-
int getCellNumber(int x, int y)
- ngasilake nomer sing ana ing sel kanthi koordinat (x, y). Yen sel ora ngemot nomer, ngasilake 0:int i = getCellNumber(3, 3); System.out.println(getCellNumber(4, 1));
-
void setCellTextColor(int x, int y, Color color)
- nyetel warna isi (teks) sel kanthi koordinat (x, y):setCellTextColor(2, 1, Color.GREEN); setCellTextColor(0, 1, Color.NONE);
-
Color getCellTextColor(int x, int y)
- ngasilake warna isi (teks) sel kanthi koordinat (x, y):Color textColor = getCellTextColor(1, 3);
setCellValueEx()
cara kanthi macem-macem paramèter:
-
void setCellValueEx(int x, int y, Color cellColor, String value)
- nyetel werna latar mburi (warna sel) lan isi (nilai) sel kanthi koordinat (x, y):setCellValueEx(0, 2, Color.BLUE, "56");
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)
- nyetel werna latar mburi (warna sel), isi (nilai), lan werna teks (warna teks) sel kanthi koordinat (x, y):setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize)
— nyetel werna latar mburi (warna sel), isi (nilai), werna teks (warna teks), lan ukuran teks (ukuran teks) sel kanthi koordinat (x, y):setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
6. Nggarap werna
IngColor enum
tanggung jawab kanggo werna ing mesin game. Nduweni nilai unik kanggo 148 warna. Uga nduweni nilai khusus (NONE) sing ora nuduhake warna. Mangkene conto nggarap warna:
Color myColor = Color.WHITE; // The myColor variable is set to white.
Color redColor = Color.RED; // The redColor variable is set to red.
Color blueColor = Color.BLUE; // The blueColor variable is set to light blue.
Kadhangkala, sampeyan kudu entuk macem-macem warna sing wis ana. Kanggo nindakake iki, gunakake values()
metode kasebut. Tuladhane:
Color[] colors = Color.values(); // The colors variable is assigned an array containing all available colors.
Gampang banget kanggo entuk indeks warna ing palet:
Color color = Color.RED;
int redIndex = color.ordinal(); // Index of red
int blueIndex = Color.BLUE.ordinal(); // Index of blue
Sampeyan uga bisa entuk warna kanthi indeks:
Color color = Color.values()[10]; // The color variable is assigned the color with index 10 in the Color enum.
7. Kothak dialog
Ing pungkasan game, sampeyan kudu laporan menang utawa mundhut kanggo pamuter. Kanggo nindakake iki, ana cara khusus sing nampilake kothak dialog ing layar game:
void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
kene:
cellColor
yaiku werna latar mburi kothak dialog;message
yaiku teks pesen;textColor
yaiku warna teks pesen;textSize
yaiku ukuran teks pesen.
8. Metode Utilitas
Nalika nulis game, nomer acak digunakake akeh. Kanggo nggampangake entuk nomer acak, sampeyan bisa nggunakake cara sarana ing ngisor iki sing diwenehake dening mesin game:-
int getRandomNumber(int max)
- ngasilake integer acak saka 0 kanggo (max-1) klebu. -
int getRandomNumber(int min, int max)
- ngasilake integer acak saka min kanggo (max-1) klebu.
GO TO FULL VERSION