คะแนน: 250 ชีวิต: 2 เวฟ: 2
👾 👾 👾 👾 👾 👾 👾 👾 👾 👾
👾 👾 👾 👾 👾 👾 👾 👾 👾 👾
👽 👽 👽 👽 👽 👽 👽 👽 👽 👽
👽 👽 👽 👽 👽 👽 👽 👽 👽 👽
🛸 🛸 🛸 🛸 🛸 🛸 🛸 🛸 🛸 🛸
🚀
## ✨ ฟีเจอร์
- 🎮 **การเล่นที่เหมือนจริง**: ระบบการเคลื่อนที่และการยิงแบบคลาสสิก
- 👾 **ศัตรู 3 แบบ**: Basic (น้ำเงิน), Fast (เหลือง), Strong (แดง)
- 💥 **เอฟเฟกต์ระเบิด**: อนุภาคกระเด็นเมื่อโดนโจมตี
- 🎯 **ระบบคะแนน**: คะแนนต่างกันตามประเภทศัตรู
- 🔄 **ระบบเวฟ**: ศัตรูใหม่เมื่อกำจัดหมดแล้ว
- 💖 **ระบบชีวิต**: มี 3 ชีวิต
- 🌟 **พื้นหลังอวกาศ**: ดาวแสง sparkle
- 🔊 **การตอบสนองที่ดี**: 60 FPS เสถียร
## 🛠️ การติดตั้ง
### ความต้องการระบบ
- **Rust** (เวอร์ชัน 1.56+)
- **Cargo** (มาพร้อม Rust)
### ขั้นตอนการติดตั้ง
1. **Clone repository หรือสร้างโปรเจกต์ใหม่:**
```bash
cargo new space_invaders
cd space_invaders
-
เพิ่ม dependencies ใน
Cargo.toml:[package] name = "space_invaders" version = "0.1.0" edition = "2021" [dependencies] macroquad = "0.4" rand = "0.8"
-
คัดลอกโค้ดเกมไปใส่ใน
src/main.rs -
รันเกม:
cargo run
| ปุ่ม | การกระทำ |
|---|---|
← หรือ A |
เคลื่อนที่ซ้าย |
→ หรือ D |
เคลื่อนที่ขวา |
SPACE |
ยิงกระสุน |
R |
เริ่มเกมใหม่ |
- 🎯 ยิงศัตรูให้หมดเพื่อไปเวฟถัดไป
- 💰 เก็บคะแนนให้ได้มากที่สุด
- 🛡️ หลีกเลี่ยงกระสุนของศัตรู
- 🚫 อย่าให้ศัตรูลงมาถึงพื้น
| ประเภทศัตรู | คะแนน | สี |
|---|---|---|
| Basic | 10 | 🔵 น้ำเงิน |
| Fast | 20 | 🟡 เหลือง |
| Strong | 30 | 🔴 แดง |
| เวฟโบนัส | 100 | - |
// โครงสร้างข้อมูลหลัก
struct GameState {
player: Player, // ข้อมูลผู้เล่น
enemies: Vec<Enemy>, // รายการศัตรู
bullets: Vec<Bullet>, // รายการกระสุน
particles: Vec<Particle>, // เอฟเฟกต์ระเบิด
// ... อื่นๆ
}
// ประเภทศัตรู
enum EnemyType {
Basic, // ศัตรูพื้นฐาน
Fast, // ศัตรูเร็ว
Strong, // ศัตรูแข็งแกร่ง
}src/main.rs- โค้ดเกมหลักCargo.toml- การตั้งค่า dependenciesREADME.md- เอกสารนี้
- 🔊 เสียงเอฟเฟกต์: เพิ่มเสียงยิง, ระเบิด, เพลงพื้นหลัง
- 🏆 High Score: ระบบบันทึกคะแนนสูงสุด
- 🎨 กราฟิกดีขึ้น: ใช้ sprites แทนรูปทรงเรขาคณิต
- 🛸 ศัตรูใหม่: UFO โบนัส, Boss fights
- 💎 Power-ups: กระสุนพิเศษ, ชีวิตเพิ่ม, ป้องกัน
- 🌐 Multiplayer: เล่นหลายคนผ่านเครือข่าย
แก้ไขค่าคงที่เหล่านี้ใน main.rs:
// ความเร็วผู้เล่น
player.speed = 300.0;
// ความเร็วกระสุน
velocity: Vec2::new(0.0, -500.0);
// คะแนนศัตรู
EnemyType::Basic => 10,
EnemyType::Fast => 20,
EnemyType::Strong => 30,- เกมช้า: ลดจำนวน particles หรือศัตรู
- กระสุนหายไป: ตรวจสอบ collision detection
- ศัตรูไม่เคลื่อนที่: ตรวจสอบ update loop
# รันในโหมด debug
cargo run
# รันในโหมด release (เร็วกว่า)
cargo run --release
# ตรวจสอบ warnings
cargo clippy- Fork project นี้
- สร้าง feature branch (
git checkout -b feature/AmazingFeature) - Commit การเปลี่ยนแปลง (
git commit -m 'Add some AmazingFeature') - Push ไป branch (
git push origin feature/AmazingFeature) - เปิด Pull Request
- ขอบคุณ macroquad team สำหรับ framework ที่ยอดเยี่ยม
- แรงบันดาลใจจากเกม Space Invaders ต้นฉบับ (1978)
- Rust community สำหรับการสนับสนุนและเอกสารที่ดี
- v1.0.0 - เกมเบื้องต้นสมบูรณ์
- v1.1.0 - เพิ่มเอฟเฟกต์ระเบิด
- v1.2.0 - ปรับปรุง AI ศัตรู