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
- 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)
- 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.
Để 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:
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)
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 độ).
- 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.
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.
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ề.
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.
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.
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.
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.