Cách sử dụng Sprites trong Arcade để phát triển trò chơi
Thư viện Arcade của Python cung cấp một cách liền mạch và trực quan để kết hợp các họa tiết vào các dự án phát triển trò chơi của bạn. Các họa tiết là những yếu tố thiết yếu mang lại sự hấp dẫn về mặt hình ảnh, tính tương tác và chuyển động năng động cho trò chơi của bạn.
Với cú pháp đơn giản và chức năng mạnh mẽ của Arcade, việc thêm các họa tiết trở nên dễ dàng. Thư viện cho phép bạn dễ dàng cải thiện trò chơi của mình bằng các nhân vật và đồ vật hấp dẫn.
Mục Lục
Tạo một trò chơi đơn giản
Mã được sử dụng trong bài viết này có sẵn trong kho lưu trữ GitHub này và bạn được sử dụng miễn phí theo giấy phép MIT.
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 arcade
Bắt đầu bằng cách tạo một trò chơi đơn giản bằng thư viện Arcade của Python. Trong trò chơi này, người chơi sẽ có thể di chuyển sang trái và phải.
Tạo một lớp MyGame kế thừa từ arcade.Window. Sau đó, xác định phương thức thiết lập để khởi tạo các biến và on_draw phương pháp để vẽ các đối tượng trò chơi. Các on_key_press phương pháp cho phép người chơi di chuyển hình chữ nhật màu xanh sang trái hoặc phải.
Đây là mã cho trò chơi cơ bản của bạn:
import arcadeSCREEN_WIDTH = 640
SCREEN_HEIGHT = 480
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
def setup(self):
self.player_x = 320
def on_draw(self):
arcade.start_render()
arcade.draw_rectangle_filled(self.player_x, 50, 50, 50, arcade.color.BLUE)
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_x -= 10
elif key == arcade.key.RIGHT:
self.player_x += 10
def main():
game = MyGame(SCREEN_WIDTH, SCREEN_HEIGHT)
game.setup()
arcade.run()
if __name__ == "__main__":
main()
Cách thêm Sprites vào trò chơi của bạn
Bây giờ bạn đã có một trò chơi đơn giản đang hoạt động, đã đến lúc nâng cao nó bằng cách thêm một số họa tiết. Bạn có thể tạo sprite bằng cách sử dụng arcade.Sprite lớp học. Bạn có thể tải hình ảnh để đại diện cho nhân vật của mình và sử dụng chúng trong trò chơi của mình.
Tải một tệp hình ảnh có tên người chơi.png để tạo nhân vật người chơi của bạn. Đặt vị trí ban đầu của sprite ở giữa màn hình. bên trong on_draw vẽ nhân vật người chơi bằng chức năng vẽ.
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
self.player_sprite = None
def setup(self):
self.player_sprite = arcade.Sprite("player.png")
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2
def on_draw(self):
arcade.start_render()
self.player_sprite.draw()
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_sprite.change_x = -5
elif key == arcade.key.RIGHT:
self.player_sprite.change_x = 5 def update(self, delta_time):
self.player_sprite.update()
Các tính năng Sprite bổ sung
Sprites trong Arcade cung cấp các tính năng ngoài chuyển động cơ bản. Ví dụ: bạn có thể thay đổi kích thước một sprite bằng cách đặt thuộc tính tỷ lệ của nó.
Bạn có thể đặt thuộc tính tỷ lệ của sprite trình phát thành 0,5 để làm cho nó bằng một nửa kích thước ban đầu.
class MyGame(arcade.Window):
def setup(self):
self.player_sprite = arcade.Sprite("player.png", scale=0.5)
Kiểm soát phong trào Sprite
Sprites trong Arcade cung cấp nhiều cách khác nhau để điều khiển chuyển động của người chơi. Bên cạnh đó thay đổi_x thuộc tính, bạn có thể sử dụng thay_y thuộc tính để kiểm soát chuyển động dọc. Đối với các mẫu chuyển động phức tạp hơn, bạn cũng có thể sử dụng change_angle thuộc tính để xoay sprite.
self.player_sprite.change_angle = ROTATION_SPEED
Bằng cách kết hợp các thuộc tính này với đầu vào bàn phím hoặc chuột, bạn có thể tạo các điều khiển chuyển động linh hoạt và nhạy bén cho nhân vật trò chơi của mình.
Thêm phát hiện va chạm với Sprites
Phát hiện va chạm là rất quan trọng trong nhiều trò chơi. Với Arcade, bạn có thể dễ dàng phát hiện va chạm giữa các họa tiết bằng cách sử dụng arcade.check_for_collision chức năng. Hãy sửa đổi mã để bao gồm phát hiện va chạm giữa nhân vật người chơi và một nhân vật khác được gọi là chướng ngại vật.png:
class MyGame(arcade.Window):
def __init__(self, width, height):
super().__init__(width, height)
arcade.set_background_color(arcade.color.WHITE)
self.player_sprite = None
def setup(self):
self.player_sprite = arcade.Sprite("player.png", scale=0.1)
self.obstacle_sprite = arcade.Sprite("obstacle.png", scale = 0.1)
self.obstacle_sprite.center_x = SCREEN_WIDTH
self.obstacle_sprite.center_y = SCREEN_HEIGHT // 2
self.player_sprite.center_x = SCREEN_WIDTH // 2
self.player_sprite.center_y = SCREEN_HEIGHT // 2
def on_draw(self):
arcade.start_render()
self.player_sprite.draw()
self.obstacle_sprite.draw()
def on_key_press(self, key, modifiers):
if key == arcade.key.LEFT:
self.player_sprite.change_x = -5
elif key == arcade.key.RIGHT:
self.player_sprite.change_x = 5
def update(self, delta_time):
self.player_sprite.update()
self.obstacle_sprite.update() if arcade.check_for_collision(self.player_sprite, self.obstacle_sprite):
print("Collision detected!")
Làm cho trò chơi của bạn hấp dẫn hơn với Sprites
Các họa tiết làm cho các nhân vật, đồ vật và hoạt ảnh trông chân thực và thú vị. Chúng có thể di chuyển, va chạm và tương tác với những thứ khác trong trò chơi của bạn, điều này khiến trò chơi trở nên chân thực và thú vị hơn.
Sử dụng các họa tiết, bạn có thể tạo các trò chơi khiến người chơi quan tâm và muốn chơi nhiều hơn. Sprites mở ra một thế giới khả năng để tạo ra các trò chơi hấp dẫn và đáng nhớ.