Arcade là một thư viện Python phổ biến mà bạn có thể sử dụng để tạo các trò chơi arcade 2D. Đây là một thư viện dễ sử dụng cung cấp một khung đơn giản để tạo trò chơi bằng Python.
Một trong những thành phần thiết yếu của bất kỳ trò chơi nào là chuyển động của người chơi.
Tạo một trò chơi đơn giản trong Arcade
Trước khi bắt đầu, hãy đảm bảo rằng bạn đã cài đặt pip trên thiết bị của mình. Sử dụng lệnh này để cài đặt thư viện arcade:
pip install library
Sau đó, tạo một lớp Người chơi như một lớp con của arcade.Sprite lớp, và một Trò chơi của tôi lớp như một lớp con của arcade.Window. Các Trò chơi của tôi class sẽ có các phương thức để thiết lập các đối tượng trò chơi, hiển thị chúng trên màn hình, cập nhật trạng thái trò chơi và xử lý thông tin nhập của người dùng. Code tạo màn chơi và đối tượng người chơi như sau:
import arcade
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600
class Player(arcade.Sprite):
def __init__(self):
super().__init__("player.png", 0.5)
self.center_x = SCREEN_WIDTH // 2
self.center_y = SCREEN_HEIGHT // 2
class MyGame(arcade.Window):
def __init__(self):
super().__init__(SCREEN_WIDTH, SCREEN_HEIGHT, "My Game")
self.player = None
arcade.set_background_color(arcade.color.BLACK)
def setup(self):
self.player = Player()
def on_draw(self):
arcade.start_render()
self.player.draw()
def update(self, delta_time):
pass
MyGame().run()
Thêm chuyển động của người chơi bằng đầu vào bàn phím
Bây giờ bạn đã tạo màn hình trò chơi và đối tượng trình phát, bạn có thể di chuyển trình phát theo phản hồi của đầu vào bàn phím. xác định on_key_press() Và on_key_release() các phương thức mà bạn sẽ gọi khi người chơi nhấn hoặc thả một phím.
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player.change_x = -5
elif key == arcade.key.RIGHT:
self.player.change_x = 5
elif key == arcade.key.UP:
self.player.change_y = 5
elif key == arcade.key.DOWN:
self.player.change_y = -5
def on_key_release(self, key, modifiers):
if key == arcade.key.LEFT or key == arcade.key.RIGHT:
self.player.change_x = 0
elif key == arcade.key.UP or key == arcade.key.DOWN:
self.player.change_y = 0
Khi thêm chuyển động của người chơi bằng đầu vào bàn phím, bạn có thể tùy chỉnh tốc độ di chuyển bằng cách thay đổi giá trị được gán cho self.player.change_x Và self.player.change_y. Bạn cũng có thể thêm các điều kiện để hạn chế chuyển động của người chơi trong màn chơi.
Thêm chuyển động của người chơi bằng đầu vào chuột
Ngoài đầu vào bàn phím, bạn cũng có thể thêm chuyển động của người chơi bằng cách sử dụng đầu vào chuột. xác định on_mouse_motion() phương pháp này sẽ chạy khi người chơi di chuyển chuột. Bên trong phương thức, đặt center_x Và center_y thuộc tính của đối tượng trình phát vào vị trí chuột hiện tại.
def on_mouse_motion(self, x, y, dx, dy):
self.player.center_x = x
self.player.center_y = y
Khi thêm chuyển động của người chơi bằng đầu vào chuột, bạn có thể tùy chỉnh hành vi của đối tượng người chơi khi người dùng nhấp hoặc giữ chuột bằng cách xác định các phương thức như on_mouse_press() hoặc on_mouse_drag(). Bạn có thể sử dụng các phương pháp này để kích hoạt các hành động của người chơi như bắn hoặc nhảy, tùy thuộc vào cơ chế của trò chơi.
Giới thiệu các tính năng bổ sung
Bạn có thể nâng cao hơn nữa chuyển động của người chơi bằng cách tính đến khả năng tăng tốc và giảm tốc. Sửa đổi on_key_press() phương pháp để trừ hoặc thêm vào thay đổi_x Và thay_y thuộc tính của đối tượng trình phát, tùy thuộc vào hướng chuyển động. Cũng đặt thay đổi_x Và thay_y thuộc tính thành 0 trong on_key_release() phương pháp, như trước đây.
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player.change_x -= 5
elif key == arcade.key.RIGHT:
self.player.change_x += 5
elif key == arcade.key.UP:
self.player.change_y += 5
elif key == arcade.key.DOWN:
self.player.change_y -= 5
def on_key_release(self, key, modifiers):
if key == arcade.key.LEFT or key == arcade.key.RIGHT:
self.player.change_x = 0
elif key == arcade.key.UP or key == arcade.key.DOWN:
self.player.change_y = 0
Giống như PyGame, bạn cũng có thể thêm tính năng phát hiện va chạm giữa đối tượng người chơi và các đối tượng trò chơi khác, chẳng hạn như kẻ thù hoặc chướng ngại vật trong trò chơi điện tử. Bạn có thể đạt được điều này bằng cách thêm đoạn mã sau vào cập nhật() phương pháp của Trò chơi của tôi lớp học:
def update(self, delta_time):
self.player.update()
collisions = arcade.check_for_collision_with_list(self.player, self.enemy_list)
for collision in collisions:
collision.kill()
Tạo trò chơi hấp dẫn với chuyển động tương tác của người chơi
Chuyển động tương tác của người chơi là một khía cạnh quan trọng của bất kỳ trò chơi hấp dẫn nào. Việc sử dụng các loại cơ chế chuyển động khác nhau như nhảy, chạy, bay và trượt có thể tạo thêm sự đa dạng và hứng thú cho trò chơi.
Cung cấp cho người chơi quyền kiểm soát chuyển động của họ sẽ bổ sung thêm cảm giác tự chủ và đắm chìm, điều này có thể dẫn đến trải nghiệm chơi trò chơi thỏa mãn hơn.