Skip to content

Hozngvan/endlessRunnerGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Chicken Runner

Một game chạy vô tận 3D được xây dựng bằng Three.js với hệ thống lưu điểm và bảng xếp hạng.

📋 Mô tả

Endless Runner Game là một game 3D nơi người chơi điều khiển nhân vật chạy và nhảy để tránh các chướng ngại vật, thu thập coin và đạt điểm cao nhất có thể. Game được xây dựng với:

  • Frontend: Three.js, HTML5, CSS3, JavaScript ES6+
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Tính năng: Hệ thống điểm số, bảng xếp hạng, âm thanh, hiệu ứng 3D

🚀 Cài đặt và Chạy

Yêu cầu hệ thống

  • Node.js (phiên bản 14.0.0 trở lên)
  • npm hoặc yarn
  • MongoDB (có thể sử dụng MongoDB Atlas - cloud database)

Bước 1: Clone dự án

git clone <repository-url>
cd endlessRunnerGame

Bước 2: Cài đặt dependencies

Cài đặt dependencies cho frontend

npm install

Cài đặt dependencies cho backend

cd api
npm install
cd ..

Bước 3: Cấu hình Database

Tạo file .env trong thư mục api

cd api

Tạo file .env với nội dung sau:

MONGODB_URI=mongodb://localhost:27017/endless_runner
DB_NAME=endless_runner
COLLECTION_NAME=scores
PORT=3000

Lưu ý:

  • Nếu sử dụng MongoDB Atlas, thay đổi MONGODB_URI thành connection string của bạn
  • Ví dụ: mongodb+srv://username:password@cluster.mongodb.net/endless_runner

Bước 4: Khởi động Backend Server

cd api
node server.js

Bạn sẽ thấy thông báo:

✅ Connected to MongoDB
🚀 Server running at http://localhost:3000

Bước 5: Chạy Game

Mở file index.html trong trình duyệt web hoặc sử dụng local server:

Cách 1: Mở trực tiếp file HTML

  • Mở file index.html trong trình duyệt web

Cách 2: Sử dụng local server (khuyến nghị)

# Sử dụng Python (nếu có)
python -m http.server 8000

# Hoặc sử dụng Node.js http-server
npx http-server -p 8000

# Hoặc sử dụng Live Server extension trong VS Code

Sau đó truy cập: http://localhost:8000

🎯 Cách chơi

Điều khiển

  • Spacebar hoặc Click chuột: Nhảy
  • R: Khởi động lại game (khi game over)

Mục tiêu

  • Chạy càng xa càng tốt
  • Thu thập coin để tăng điểm
  • Tránh các chướng ngại vật
  • Đạt điểm cao nhất để lên bảng xếp hạng

📁 Cấu trúc dự án

endlessRunnerGame/
├── api/                    # Backend server
│   ├── server.js          # Express server
│   ├── package.json       # Backend dependencies
│   └── .env              # Environment variables (cần tạo)
├── js/                    # Frontend JavaScript
│   ├── main.js           # Entry point
│   ├── game.js           # Game logic
│   ├── player.js         # Player controller
│   ├── obstacleManager.js # Obstacle management
│   ├── world.js          # World rendering
│   └── ui.js             # User interface
├── textures/              # Game assets
│   ├── background.png
│   ├── img/
│   └── ...
├── sound/                 # Audio files
│   ├── music.mp3
│   ├── jump_sound.wav
│   └── ...
├── index.html            # Main HTML file
├── package.json          # Frontend dependencies
└── README.md            # This file

🔧 API Endpoints

Backend server cung cấp các API sau:

  • POST /scores - Lưu điểm cuối cùng
  • POST /scores/temp - Lưu điểm tạm thời
  • GET /scores/top5 - Lấy top 5 người chơi

🛠️ Troubleshooting

Lỗi kết nối MongoDB

  • Kiểm tra MongoDB đã được khởi động
  • Kiểm tra connection string trong file .env
  • Đảm bảo network connection nếu sử dụng MongoDB Atlas

Lỗi CORS

  • Backend đã được cấu hình CORS để cho phép frontend truy cập
  • Nếu vẫn gặp lỗi, kiểm tra URL trong frontend code

Game không load

  • Kiểm tra console trong Developer Tools
  • Đảm bảo tất cả dependencies đã được cài đặt
  • Kiểm tra đường dẫn file trong index.html

📝 Ghi chú phát triển

Thêm tính năng mới

  1. Chỉnh sửa logic trong js/game.js
  2. Cập nhật UI trong js/ui.js
  3. Thêm API endpoints nếu cần trong api/server.js

Tùy chỉnh assets

  • Thay thế textures trong thư mục textures/
  • Thay thế âm thanh trong thư mục sound/
  • Cập nhật đường dẫn trong code tương ứng

🤝 Đóng góp

  1. Fork dự án
  2. Tạo feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Mở Pull Request

📄 License

Dự án này được phân phối dưới giấy phép ISC.

👥 Tác giả

  • Nhóm phát triển - Endless Runner Game

Lưu ý: Đảm bảo MongoDB đang chạy trước khi khởi động backend server!

About

Project for CS105

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •