/ / Xử lý đầu vào bàn phím trong thư viện Arcade Trò chơi Python

Xử lý đầu vào bàn phím trong thư viện Arcade Trò chơi Python

developer coding

Đầu vào bàn phím là một phần thiết yếu của quá trình phát triển trò chơi và điều quan trọng là xử lý nó một cách hiệu quả để mang lại trải nghiệm tuyệt vời cho người dùng. Thư viện Arcade cung cấp một cách đơn giản và hiệu quả để xử lý đầu vào bàn phím trong các trò chơi Python của bạn.


Tạo một trò chơi đơn giản với một người chơi

Trước khi đi sâu vào việc xử lý đầu vào bàn phím, hãy đảm bảo rằng bạn đã cài đặt pip trong thiết bị của mình. Sử dụng lệnh này để cài đặt thư viện arcade:

 pip install arcade 

Sau đó, tạo khung của một trò chơi đơn giản:

 import arcade

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

class MyGame(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height, "My Game")
        arcade.set_background_color(arcade.color.WHITE)

    def on_draw(self):
        arcade.start_render()

    def update(self, delta_time):
        pass

MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()

Điều này tạo ra một cửa sổ có nền trắng. Tiếp theo, thêm người chơi vào trò chơi của bạn:

 class Player:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.speed = 5
        self.radius = 20

    def draw(self):
        arcade.draw_circle_filled(self.x, self.y, self.radius, arcade.color.BLUE)

    def move_left(self):
        self.x -= self.speed

    def move_right(self):
        self.x += self.speed

    def move_up(self):
        self.y += self.speed

    def move_down(self):
        self.y -= self.speed

Điều này tạo ra một trình phát đơn giản với một vòng tròn màu xanh lam. Bạn có thể thêm người chơi này vào trò chơi của mình bằng cách sửa đổi Trò chơi của tôi lớp học:

 import arcade

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

class MyGame(arcade.Window):
    def __init__(self, width, height):
        super().__init__(width, height, "My Game")
        arcade.set_background_color(arcade.color.WHITE)
        self.player = Player(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2)

    def on_draw(self):
        arcade.start_render()
        self.player.draw()

    def update(self, delta_time):
        pass

def main():
    MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
    arcade.run()

if __name__ == "__main__":
    main()

Bây giờ bạn có một người chơi trong trò chơi của mình mà bạn có thể vẽ trên màn hình.

Phản ứng với các lần nhấn và nhả phím

Để phản hồi đầu vào của người dùng trong trò chơi của bạn, bạn cần xử lý các thao tác nhấn và nhả phím. Thư viện Arcade cung cấp hai phương pháp để xử lý các sự kiện này: on_key_presson_key_release.

Để sử dụng các phương thức này, bạn cần định nghĩa chúng trong arcade.Window phân lớp. Khi người chơi nhấn hoặc thả một phím, arcade sẽ chạy phương thức tương ứng, truyền cho nó hai đối số: phím và bộ sửa đổi. chìa khóa là một số nguyên biểu thị mã phím của phím được nhấn hoặc nhả. sửa đổi là một trường bit đại diện cho bất kỳ phím bổ trợ nào mà người chơi cũng đã nhấn, như Shift hoặc Control.

Sau đây là ví dụ về cách phản hồi khi nhấn phím trong trò chơi của bạn:

 class MyGame(arcade.Window):
    def on_key_press(self, key, modifiers):
        if key == arcade.key.LEFT:
            
        elif key == arcade.key.RIGHT:
            
        elif key == arcade.key.UP:
            
        elif key == arcade.key.DOWN:
            

Để phản hồi các bản phát hành chính, bạn có thể xác định on_key_release phương pháp theo cùng một cách:

 class MyGame(arcade.Window):
    def on_key_release(self, key, modifiers):
        if key == arcade.key.LEFT:
            
        elif key == arcade.key.RIGHT:
            
        elif key == arcade.key.UP:
            
        elif key == arcade.key.DOWN:
            

Điều quan trọng cần lưu ý là việc nắm bắt đầu vào của người dùng trong pygame yêu cầu kiểm tra sự kiện thủ công trong vòng lặp trò chơi của bạn. Mặt khác, thư viện Arcade sẽ tự động gọi các phương thức liên quan khi người chơi nhấn hoặc thả một phím. Điều này có nghĩa là bạn không phải kiểm tra thủ công các sự kiện quan trọng trong vòng lặp trò chơi của mình, giúp bạn không gặp rắc rối với mã bổ sung.

Tùy chỉnh xử lý đầu vào bàn phím để phù hợp với nhu cầu trò chơi của bạn

Thư viện Arcade cung cấp nhiều cách để tùy chỉnh đầu vào bàn phím. Bạn có thể muốn thay đổi các tổ hợp phím cho trò chơi của mình hoặc cho phép người chơi tùy chỉnh các tổ hợp phím của riêng họ.

Bạn có thể làm điều này bằng cách định nghĩa một từ điển key_map ánh xạ từng khóa tới phương thức tương ứng của đối tượng người chơi. Để cho phép người chơi tùy chỉnh các tổ hợp phím của họ, bạn có thể thêm menu cài đặt để sửa đổi key_map từ điển dựa trên sở thích của người chơi.

Đây là một ví dụ:

 class MyGame(arcade.Window):
    def __init__(self, width, height, title):
        super().__init__(width, height, title)
        self.player = Player(100, 100)

        self.key_map = {
            arcade.key.LEFT: self.player.move_left,
            arcade.key.RIGHT: self.player.move_right,
            arcade.key.UP: self.player.move_up,
            arcade.key.DOWN: self.player.move_down
        }

    def on_key_press(self, key, modifiers):
        if key in self.key_map:
            self.key_map[key]()

    def on_key_release(self, key, modifiers):
        if key in self.key_map:
            self.key_map[key + 1]()

Trả lời thông tin đầu vào của người dùng trong thời gian thực

Phản hồi đầu vào của người dùng trong thời gian thực là một khía cạnh thiết yếu để tạo ra một trò chơi hấp dẫn. Bằng cách dành thời gian để xử lý đúng cách đầu vào bàn phím trong trò chơi của mình, bạn có thể tạo ra trải nghiệm hấp dẫn và đắm chìm hơn cho người chơi của mình, đồng thời cuối cùng làm cho trò chơi của bạn nổi bật trong một thị trường đông đúc.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *