Skip to content

BoonyaritL/Rust-game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Space Invaders - Rust Game

🚀 SPACE INVADERS 🛸

คะแนน: 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
  1. เพิ่ม dependencies ใน Cargo.toml:

    [package]
    name = "space_invaders"
    version = "0.1.0"
    edition = "2021"
    
    [dependencies]
    macroquad = "0.4"
    rand = "0.8"
  2. คัดลอกโค้ดเกมไปใส่ใน src/main.rs

  3. รันเกม:

    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 - การตั้งค่า dependencies
  • README.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,

🔧 การแก้ปัญหา

ปัญหาที่อาจเจอ

  1. เกมช้า: ลดจำนวน particles หรือศัตรู
  2. กระสุนหายไป: ตรวจสอบ collision detection
  3. ศัตรูไม่เคลื่อนที่: ตรวจสอบ update loop

การ Debug

# รันในโหมด debug
cargo run

# รันในโหมด release (เร็วกว่า)
cargo run --release

# ตรวจสอบ warnings
cargo clippy

📚 เทคโนโลยีที่ใช้

  • Rust - ภาษาโปรแกรมมิงหลัก
  • Macroquad - Game framework สำหรับ 2D
  • rand - Random number generation

🤝 การมีส่วนร่วม

  1. Fork project นี้
  2. สร้าง feature branch (git checkout -b feature/AmazingFeature)
  3. Commit การเปลี่ยนแปลง (git commit -m 'Add some AmazingFeature')
  4. Push ไป branch (git push origin feature/AmazingFeature)
  5. เปิด Pull Request

🙏 กิตติกรรมประกาศ

  • ขอบคุณ macroquad team สำหรับ framework ที่ยอดเยี่ยม
  • แรงบันดาลใจจากเกม Space Invaders ต้นฉบับ (1978)
  • Rust community สำหรับการสนับสนุนและเอกสารที่ดี

📈 เวอร์ชัน

  • v1.0.0 - เกมเบื้องต้นสมบูรณ์
  • v1.1.0 - เพิ่มเอฟเฟกต์ระเบิด
  • v1.2.0 - ปรับปรุง AI ศัตรู

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages