CodeGym/Blog Java/Ngẫu nhiên/Phần trò chơi trên CodeGym: Công cụ trò chơi
John Squirrels
Mức độ
San Francisco

Phần trò chơi trên CodeGym: Công cụ trò chơi

Xuất bản trong nhóm
"Trò chơi" từ CodeGym là một phần mới với các nhiệm vụ lớn liên quan đến việc viết các trò chơi máy tính phổ biến. Chúng có vẻ dễ tạo hơn: mỗi dự án được chia thành 20 nhiệm vụ con. Hoàn thành từng bước nhiệm vụ, bạn sẽ viết trò chơi của riêng mình, sau đó bạn có thể thêm các tính năng độc đáo và chia sẻ nó với bạn bè. Phần "Trò chơi" trên CodeGym: Game engine - 1Các trò chơi sử dụng công cụ trò chơi CodeGym đơn giản . Trong bài viết này, chúng tôi sẽ mô tả các tính năng chính của nó và quy trình viết trò chơi trông như thế nào.

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:
  1. 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.

  2. 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.

  3. 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: Phần "Trò chơi" trên CodeGym: Game engine - 2Lưu ý rằng các ô được đánh số bắt đầu từ góc trên cùng bên trái. Để đặt kích thước của sân chơi, hãy sử dụng 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()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ả: Phần "Trò chơi" trên CodeGym: Game engine - 3Để bật lại lưới, hãy gọi:
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 ô.
Hãy xem xét các phương pháp làm việc với các ô của sân chơi :
  1. 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);

  2. Color getCellColor(int x, int y)— trả về màu của ô có tọa độ (x, y):

    Color myColor = getCellColor(2, 0);

  3. 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, "");

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

  5. 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

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

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

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

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

  10. 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);
Để thuận tiện, có một số setCellValueEx()phương thức với các bộ tham số khác nhau:
  1. 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");

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

  3. 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ịu Color enumtrá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:
  • cellColorlà màu nền của hộp thoại;
  • messagelà nội dung của tin nhắn;
  • textColorlà màu của văn bản tin nhắn;
  • textSizelà kích thước của văn bản tin nhắn.
Hộp thoại tự đóng nếu người dùng nhấn phím cách.

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:
  1. int getRandomNumber(int max)— trả về một số nguyên ngẫu nhiên từ 0 đến (max-1) bao gồm.

  2. 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).

Đó là tất cả cho bây giờ! Nếu bạn muốn tìm hiểu thêm về phần "Trò chơi", đây là một số tài liệu hữu ích có thể giúp:
Bình luận
  • Phổ biến
  • Mới
Bạn phải đăng nhập để đăng nhận xet
Trang này chưa có bất kỳ bình luận nào