Phát triển game dễ dàng với Pygame Zero | Học CNTT cùng FUNiX

Phát triển game dễ dàng với Pygame Zero

Chia sẻ kiến thức 03/03/2023

Pygame Zero đơn giản hóa quá trình phát triển game bằng cách thực hiện rất nhiều công việc cho bạn.

Python thường được coi là một ngôn ngữ lập trình tuyệt vời. Pygame Zero là một điểm khởi đầu rất tốt cho các lập trình viên Python mới mong muốn sáng tạo hơn là dành thời gian viết các hàm soạn sẵn.

 

Pygame Zero là gì?

 

Pygame Zero được tạo ra để cung cấp trải nghiệm lập trình game dễ dàng hơn cho các lập trình viên Python mới. Nó loại bỏ việc phải viết lại mã phổ biến cơ bản nhất để bạn có thể tập trung vào việc tạo ra các game tuyệt vời.

Sử dụng Pygame Zero, bạn có thể thử nghiệm các họa tiết hình ảnh và thiết kế game của mình mà không phải lo lắng quá nhiều về các chi tiết cấp thấp.

Cài đặt Pygame Zero

Các bản phân phối Linux và bản phát hành macOS đời mới hơn đi kèm với Python.

Trước tiên, hãy xác nhận phiên bản Python của bạn:

python3 --version

Nếu bạn đã cài đặt Python 3, lệnh này sẽ in phiên bản chính xác trên dòng lệnh (command line):

 

Tiếp theo, cài đặt trình cài đặt gói Python – PIP – sử dụng một trong hai lệnh sau hoặc phương pháp cài đặt PIP thay thế:

apt install python3-pip # Debian
dnf install python3-pip # Fedora 

Khi đã cài đặt PIP, tiến hành cài đặt Pygame Zero:

pip3 install pgzero

Quá trình sẽ giống như sau:

 

Với Pygame Zero được cài đặt, bạn có thể bắt đầu viết game.

Tạo game Với Pygame Zero

Có rất nhiều hướng dẫn, kho lưu trữ và trò chơi mẫu tuyệt vời để bạn học hỏi hoặc xây dựng dựa trên đó.

Kho lưu trữ Pygame GitHub có một số ví dụ tuyệt vời về trò chơi cổ điển để giúp bạn bắt đầu. Dùng một trò chơi cổ điển như Pong, Tetris, Mines hoặc Tron để tìm hiểu về cách làm việc với Pygame Zero.

Để bắt đầu với Pygame Zero, hãy tải xuống dự án tối thiểu này từ GitHub. Code Python được ghi lại rõ ràng và tệp README.md giải thích các yếu tố phụ thuộc mà bạn cần.

Hãy xem intro.py và bạn sẽ thấy một số hàm phổ biến sẽ giúp bạn làm quen với Pygame Zero.

Tổng quan về hàm

Bạn có thể tải một sprite bằng cách chuyển phần chính của tên tệp của nó tới lớp Actor. Ví dụ: để tải tệp images/alien.png:

alien = Actor('alien')

Hàm draw() cho máy tính biết cần vẽ gì trên màn hình. Với các họa tiết, âm thanh và code trong cấu trúc thư mục chính xác, bạn sẽ không phải mất nhiều thời gian cho các cú pháp bổ sung. Ví dụ: bạn có thể hiển thị sprite ngoài hành tinh (alien) như sau:

def draw():
    screen.clear()
   alien.draw()
 

Bạn có thể dùng hàm update() để di chuyển các họa tiết:

def update():
    alien.left += 2
    
    if alien.left > WIDTH:
        alien.right = 0

Pygame sẽ gọi hàm update() trên mọi khung hình. Đoạn code này yêu cầu máy tính dịch chuyển sprite sang bên phải cho đến khi nó ra khỏi mép màn hình. Tại thời điểm đó, nó đặt lại vị trí sang phía bên trái. Quá trình này lặp lại cho đến khi bạn đóng cửa sổ hoặc nhấn CTRL + C trong terminal để kết thúc chương trình.

Bạn có thể sử dụng hàm on_mouse_down() để kiểm tra cú nhấp chuột ở cùng vị trí với sprite ngoài hành tinh. In ra câu trả lời phù hợp và thay đổi sprite ngoài hành tinh để hiển thị hình ảnh alien_hurt.png.

Giờ thì bạn đã có một trò chơi bắn mục tiêu đơn giản nhưng đầy đủ chức năng. Chạy code bằng lệnh pgzrun intro.py. Hãy nhớ nhấp vào sprite ngoài hành tinh của bạn để nhận phản hồi:

Cảm hứng sáng tạo

Dưới đây là một số ý tưởng để khơi nguồn cảm hứng sáng tạo để giúp bạn bắt đầu. 

Paperchase

Nền tảng 2D với các tính năng lạ mắt

Hướng dẫn chuyên sâu này kéo dài khoảng hai giờ và là một hướng dẫn tuyệt vời khi bạn đã sẵn sàng để mở rộng ra bên ngoài những kiến ​​thức cơ bản về lập trình game. 

Thử thách bản thân với game

Để nâng cao kỹ năng Python, hãy thử lập trình một số trò chơi cơ bản với Pygame Zero.

Có rất nhiều tài nguyên tuyệt vời từ tài liệu về Pygame đến hướng dẫn trên YouTube để giúp bạn trong hành trình viết mã Pygame của mình.

Sau khi bạn đã hoàn thiện các kỹ năng Python và Pygame của mình, hãy cân nhắc đóng góp cho chính dự án nguồn mở đó. Bạn có thể thấy thông tin chi tiết trong kho lưu trữ Pygame Zero GitHub.

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/pygame-zero-game-development-easy/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại