Game DevelopmentThời lượng: ~25 giờCấp độ: Nâng cao

Dự án 01: Alien Invasion Game (Pygame)

Xây dựng trò chơi bắn phi thuyền không gian 2D kinh điển với Pygame và lập trình hướng đối tượng OOP

Tiến độ các Chặng kiểm tra:0/8 (0%)
Kiến thức cần biết trước (Prerequisites)
  • Chương 01 - 07: Nền tảng Python, Điều kiện if & Vòng lặp while
  • Chương 08: Hàm trong Python (Functions & Modules)
  • Chương 11: Lập trình hướng đối tượng OOP (Class, Object, Kế thừa)
Mục tiêu đầu ra của dự án
  • Làm chủ kiến trúc Game Loop 60 FPS chuẩn mực và điều phối sự kiện thời gian thực.
  • Áp dụng thành thạo nguyên lý hướng đối tượng OOP: Encapsulation, Inheritance từ pygame.sprite.Sprite.
  • Quản lý bộ nhớ và tối ưu hiệu năng: Tự động dọn dẹp các đối tượng Sprite ra ngoài màn hình.
  • Xử lý thuật toán ma trận tọa độ để sinh hạm đội quái vật tự động theo kích thước màn hình.
LƯU Ý VỀ MÔI TRƯỜNG THỰC THI: - Trong trình duyệt CodeCoBUG: Bạn có thể viết và kiểm thử tự động toàn bộ logic cốt lõi (Game Loop, Lớp Ship, Lớp Bullet, Lớp Alien, Thuật toán va chạm và Tính điểm) thông qua các bài kiểm thử xác thực (Test Cases) của Judge Engine. - Chạy đồ họa gốc trên máy tính cá nhân (Native Window): Pygame yêu cầu cửa sổ đồ họa hệ điều hành (SDL Window). Hãy làm theo "Hướng dẫn chạy trên máy cá nhân" bên dưới để khởi chạy game với đầy đủ 60 FPS mượt mà!
Hướng dẫn thiết lập và chạy trên máy tính cá nhân (Local Guide)

Để trải nghiệm đầy đủ giao diện gốc (cửa sổ đồ họa Pygame 60 FPS hoặc máy chủ Web Django cục bộ), bạn chỉ cần mở Terminal trên máy cá nhân và thực thi các câu lệnh sau:

# 1. Tạo thư mục dự án và môi trường ảo độc lập
mkdir alien_invasion && cd alien_invasion
python3 -m venv .venv
# Kích hoạt môi trường ảo (Windows: .venv\Scripts\activate | Mac/Linux: source .venv/bin/activate)
source .venv/bin/activate
# 2. Cài đặt thư viện Pygame
pip install pygame
$ python alien_invasion.py
📁 Cấu trúc thư mục dự án khuyến nghị:
alien_invasion/
  ├── alien_invasion.py
  ├── settings.py
  ├── ship.py
  ├── bullet.py
  ├── alien.py
  ├── game_stats.py
  ├── scoreboard.py
  └── button.py

Danh sách Chặng kiểm tra (Checkpoints)

Hoàn thành từng chặng để mở khóa tiếp
1

Checkpoint 1: Giới thiệu Pygame, Cấu hình Game Settings & Cửa sổ

Tìm hiểu thư viện Pygame, tạo lớp Settings tập trung hóa toàn bộ cấu hình trò chơi (độ phân giải 1200x800, màu nền RGB, tốc độ).

Mục tiêu chặng:
  • Hiểu vai trò của Pygame trong phát triển phần mềm và game đồ họa.
  • Thiết kế lớp Settings để tránh việc hardcode các giá trị cấu hình rải rác.
  • Khởi tạo đối tượng cấu hình và kiểm tra tính hợp lệ của tham số màu nền và khung hình.

Checkpoint 2: Cấu trúc Game Loop & Quản lý nhịp khung hình Clock

Xây dựng cấu trúc vòng lặp game loop chạy vô tận, điều phối chu kỳ: Lắng nghe sự kiện -> Cập nhật vị trí -> Vẽ lại khung hình -> Đồng bộ nhịp Clock.

Cần xong Chặng 1

Checkpoint 3: Xử lý sự kiện bàn phím và chuột (Event Handling)

Lắng nghe các sự kiện bàn phím pygame.KEYDOWN và pygame.KEYUP, xử lý cờ hiệu di chuyển moving_right, moving_left và thoát game khi nhấn phím Q.

Cần xong Chặng 2

Checkpoint 4: Tạo nhân vật Phi thuyền & Chuyển động mượt mà

Tạo lớp Ship quản lý hình ảnh, tọa độ số thực (float) và giới hạn biên màn hình để phi thuyền không bay ra ngoài lề.

Cần xong Chặng 3

Checkpoint 5: Xử lý Đạn Laser & Quản lý đối tượng Sprite Groups

Tạo lớp Bullet kế thừa Sprite, bắn đạn khi ấn phím Space, lưu trữ đạn trong nhóm pygame.sprite.Group và tự động xóa đạn khi bay ra khỏi màn hình.

Cần xong Chặng 4

Checkpoint 6: Xây dựng Hạm đội Quái vật ngoài hành tinh (Alien Fleet)

Tính toán toán học số lượng quái vật theo hàng và cột, dùng vòng lặp lồng nhau để tạo hạm đội Alien di chuyển nhịp nhàng.

Cần xong Chặng 5

Checkpoint 7: Quản lý va chạm Hitbox (Collision Detection)

Phát hiện va chạm giữa đạn và quái vật (pygame.sprite.groupcollide) để tiêu diệt quái vật; kiểm tra va chạm giữa quái vật và phi thuyền để trừ mạng.

Cần xong Chặng 6

Checkpoint 8: Hệ thống Tính điểm, Điểm cao & Quản lý Trạng thái Game

Xây dựng lớp GameStats và Scoreboard: Tính điểm thưởng khi tiêu diệt quái vật, lưu điểm kỷ lục High Score và nâng cấp độ khó theo từng màn chơi.

Cần xong Chặng 7