
1. Giới thiệu
Đối với nhà phát triển, có ba giai đoạn để triển khai trò chơi trên máy tính:-
Khởi tạo trò chơi — Giai đoạn này bao gồm các hành động chuẩn bị: đặt kích thước của sân chơi, vẽ sân chơi, tạo các đối tượng trò chơi và đặt chúng vào vị trí ban đầu cũng như các hành động khác phải được thực hiện khi bắt đầu trò chơi.
-
Quá trình trò chơi. Giai đoạn này bao gồm di chuyển các đối tượng trò chơi, hành động của người chơi, ghi điểm và các hành động khác phải được thực hiện ở một tần suất nhất định hoặc khi nhấn các nút.
-
Hoàn thành trò chơi. Giai đoạn này bao gồm dừng hoạt ảnh, báo cáo thắng thua và các hành động khác phải được thực hiện khi kết thúc trò chơi.
2. Khởi tạo trò chơi
Khởi tạo trò chơi chỉ bao gồm hai bước: Bước 1: Tạo lớp chính của trò chơi. Để phát triển trò chơi của riêng bạn bằng công cụ trò chơi CodeGym, bạn cần tạo lớp kế thừa lớp đóGame
(com.codegym.engine.cell.Game). Điều này mang lại cho lớp của bạn khả năng gọi các phương thức của công cụ trò chơi và cung cấp cho công cụ khả năng gọi các phương thức của bạn. Ví dụ:
import com.codegym.engine.cell.Game;
public class MySuperGame extends Game {
...
}
Bước 2: Ghi đè phương thức khởi tạo(). Tất cả các hành động cần thiết để bắt đầu trò chơi sẽ diễn ra trong phương thức này: tạo sân chơi, tạo đối tượng trò chơi, v.v. Bạn chỉ cần khai báo phương thức này trong lớp kế thừa lớp đó Game
. Ví dụ:
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
}
}
Phương thức này initialize()
tương tự như main()
phương thức: nó là điểm bắt đầu cho tất cả các mã được viết cho trò chơi.
3. Tạo sân chơi
Tạo một sân chơi cũng chỉ bao gồm hai bước. Bước 1: Chia sân chơi thành các ô. Toàn bộ sân chơi được chia thành các ô bởi công cụ trò chơi. Kích thước tối thiểu là 3x3; tối đa là 100x100. Kích thước của màn hình trò chơi là không đổi. Nó có thể được chia thành số lượng tế bào khác nhau. Ví dụ: 7 ô rộng x 9 ô cao:
void setScreenSize(int width, int height)
phương thức. Nó đặt kích thước của sân chơi. Các tham số của nó đại diện cho số lượng ô theo chiều ngang (chiều rộng) và chiều dọc (chiều cao). Nó thường được gọi một lần khi trò chơi bắt đầu. Ví dụ:
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);
...
}
}
Khi viết một trò chơi, bạn có thể cần lấy chiều rộng và chiều cao hiện tại của sân chơi. Để làm điều này, các phương thức int getScreenWidth()
và int getScreenHeight()
sẽ có ích. Bước 2: Bật hoặc tắt lưới (tùy chọn). Nếu không thích lưới đen ngăn cách các ô trên sân chơi, bạn có thể tắt nó đi. Phương void showGrid(boolean isShow)
pháp bật và tắt lưới. Theo mặc định, lưới được hiển thị. Để tắt nó, hãy gọi phương thức này với đối số là false:
showGrid(false);
Kết quả: 
showGrid(true);
4. Một chương trình nguyên thủy
Đây là một ví dụ về một chương trình:
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);
}
}
Trong ví dụ này, trường trò chơi được đặt thành 3x3, lưới bị tắt và một nửa kích thước ô "X" màu cam được đặt trên nền màu xanh lam trong ô trung tâm. Đây sẽ là điều đầu tiên người chơi nhìn thấy khi trò chơi bắt đầu.
5. Làm việc với các ô của sân chơi
Việc chúng ta có thể chia sân chơi thành các ô là rất tốt, nhưng chúng ta có thể làm gì với chính các ô đó? Bạn có thể đặt các thuộc tính sau cho từng ô của sân chơi:- màu ô (màu nền ô);
- text (văn bản hoặc số);
- văn bản màu;
- kích thước văn bản dưới dạng phần trăm kích thước ô.
-
void setCellColor(int x, int y, Color color)
— đặt màu của ô có tọa độ (x, y):setCellColor(0, 0, Color.RED); setCellColor(3, 6, Color.BLACK); setCellColor(6, 8, Color.NONE);
-
Color getCellColor(int x, int y)
— trả về màu của ô có tọa độ (x, y):Color myColor = getCellColor(2, 0);
-
void setCellValue(int x, int y, String value)
— đặt văn bản của ô có tọa độ (x, y) bằng với chuỗi trong tham số giá trị:setCellValue(3, 3, "text"); setCellValue(0, 8, "W"); setCellValue(4, 1, "2222"); setCellValue(6, 6, "");
-
String getCellValue(int x, int y)
— trả về văn bản chứa trong ô có tọa độ (x, y):String s = getCellValue(3, 3); System.out.println(getCellValue(4, 1));
-
void setCellTextSize(int x, int y, int size)
— đặt kích thước nội dung của ô có tọa độ (x, y). Tham số kích thước là chiều cao của văn bản theo tỷ lệ phần trăm của chiều cao ô:setCellTextSize(2 , 0, 70); // 70% of the cell height
-
int getCellTextSize(int x, int y)
— trả về kích thước nội dung của ô có tọa độ (x, y):int size = getCellTextSize(2 , 0);
-
void setCellNumber(int x, int y, int value)
— đặt văn bản của ô có tọa độ (x, y) bằng với số trong tham số giá trị:setCellNumber(3, 3, 40); setCellNumber(0, 8, -8); setCellNumber(4, 1, 2222); setCellNumber(6, 6, 0);
-
int getCellNumber(int x, int y)
— trả về số chứa trong ô có tọa độ (x, y). Nếu ô không chứa số, trả về 0:int i = getCellNumber(3, 3); System.out.println(getCellNumber(4, 1));
-
void setCellTextColor(int x, int y, Color color)
— đặt màu của nội dung (văn bản) của ô có tọa độ (x, y):setCellTextColor(2, 1, Color.GREEN); setCellTextColor(0, 1, Color.NONE);
-
Color getCellTextColor(int x, int y)
— trả về màu của nội dung (văn bản) của ô có tọa độ (x, y):Color textColor = getCellTextColor(1, 3);
setCellValueEx()
phương thức với các bộ tham số khác nhau:
-
void setCellValueEx(int x, int y, Color cellColor, String value)
— đặt màu nền (cellColor) và nội dung (giá trị) của ô có tọa độ (x, y):setCellValueEx(0, 2, Color.BLUE, "56");
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor)
— đặt màu nền (cellColor), nội dung (giá trị) và màu văn bản (textColor) của ô có tọa độ (x, y):setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN);
-
void setCellValueEx(int x, int y, Color cellColor, String value, Color textColor, int textSize)
— đặt màu nền (cellColor), nội dung (giá trị), màu văn bản (textColor) và kích thước văn bản (textSize) của ô có tọa độ (x, y):setCellValueEx(0, 2, Color.BLACK, "56", Color.GREEN, 70);
6. Làm việc với màu sắc
ChịuColor enum
trách nhiệm về màu sắc trong công cụ trò chơi. Nó có các giá trị duy nhất cho 148 màu. Nó cũng có một giá trị đặc biệt (NONE) không đại diện cho màu nào. Đây là một ví dụ về làm việc với màu sắc:
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.
Đôi khi bạn có thể cần lấy một mảng gồm tất cả các màu hiện có. Để làm điều này, sử dụng values()
phương pháp. Ví dụ:
Color[] colors = Color.values(); // The colors variable is assigned an array containing all available colors.
Rất dễ dàng để lấy chỉ mục của màu trong bảng màu:
Color color = Color.RED;
int redIndex = color.ordinal(); // Index of red
int blueIndex = Color.BLUE.ordinal(); // Index of blue
Bạn cũng có thể lấy màu theo chỉ số của nó:
Color color = Color.values()[10]; // The color variable is assigned the color with index 10 in the Color enum.
7. Hộp thoại
Kết thúc ván chơi cần báo thắng thua cho người chơi. Để làm điều này, có một phương pháp đặc biệt hiển thị hộp thoại trên màn hình trò chơi:
void showMessageDialog(Color cellColor, String message, Color textColor, int textSize)
Đây:
cellColor
là màu nền của hộp thoại;message
là nội dung của tin nhắn;textColor
là màu của văn bản tin nhắn;textSize
là kích thước của văn bản tin nhắn.
8. Phương thức tiện ích
Khi viết trò chơi, số ngẫu nhiên được sử dụng rất nhiều. Để lấy số ngẫu nhiên dễ dàng hơn, bạn có thể sử dụng các phương pháp tiện ích sau do công cụ trò chơi cung cấp:-
int getRandomNumber(int max)
— trả về một số nguyên ngẫu nhiên từ 0 đến (max-1) bao gồm. -
int getRandomNumber(int min, int max)
— trả về một số nguyên ngẫu nhiên từ tối thiểu đến (tối đa-1).
GO TO FULL VERSION