Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xxrjun/battle-royale
Others Fear, I Greed. Assembly Game
https://github.com/xxrjun/battle-royale
assembly battle-royale masm32 ncu x86-assembly
Last synced: about 1 month ago
JSON representation
Others Fear, I Greed. Assembly Game
- Host: GitHub
- URL: https://github.com/xxrjun/battle-royale
- Owner: xxrjun
- Created: 2023-12-04T04:35:30.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2023-12-17T21:24:49.000Z (11 months ago)
- Last Synced: 2024-07-30T17:17:51.969Z (4 months ago)
- Topics: assembly, battle-royale, masm32, ncu, x86-assembly
- Language: Assembly
- Homepage:
- Size: 156 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]# Battle Royale
> MIS 109403019 鄒翔宇, MIS 109403021 傅珩洵
## 目錄
- [目錄](#目錄)
- [遊戲規則](#遊戲規則)
- [基本資訊](#基本資訊)
- [角色設定](#角色設定)
- [遊戲結束條件](#遊戲結束條件)
- [道具系統](#道具系統)
- [開始遊戲](#開始遊戲)
- [下載專案](#下載專案)
- [直接執行](#直接執行)
- [使用 Makefile 進行編譯](#使用-makefile-進行編譯)
- [遊戲流程](#遊戲流程)
- [專案架構](#專案架構)
- [目錄結構](#目錄結構)
- [程式架構](#程式架構)
- [開發工具](#開發工具)
- [程式開發](#程式開發)
- [影音素材](#影音素材)
- [貢獻者](#貢獻者)## 遊戲規則
> *Note: 斜線表示之數值會依據遊戲體驗進行調整*
### 基本資訊
- **遊戲模式**:單人遊戲(未來會考慮加入雙人模式)
- **玩家目標**:獲得高分,分數會隨著時間持續累加,存活越久分數會越高。### 角色設定
角色
描述
外觀
倖存者
玩家操控的角色。單人遊戲時使用 WASD 鍵控制。
倖存者的目標是躲避殭屍,避免觸碰到殭屍導致死亡。
殭屍
皆由電腦控制,遊戲開始時有一隻,每隔 10 秒會從固定位置增加一隻,
最多增加到 15 隻。每隻殭屍速度不一且隨機,殭屍會持續往倖存者的位置移動。
### 遊戲結束條件
> GG! Next life!
倖存者被殭屍觸碰到,便會死亡,遊戲結束。
### 道具系統
> 遊戲過程中,每 *7.5* 秒,會隨機生成類的以下其中一個道具,玩家可以拾取道具獲得暫時的增益效果
道具
描述
外觀
閃電
玩家移動加速 3 秒
冰凍
所有殭屍暫停移動 3 秒
無敵
玩家觸碰到殭屍不會結束遊戲,持續 3 秒
鈔票
分數累加速度加快 3 秒
## 開始遊戲
### 下載專案
```bash
git clone [email protected]:xxrjun/battle-royale.git
# or
git clone https://github.com/xxrjun/battle-royale.git
```### 直接執行
```bash
cd battle-royale/bin
battle_royale.exe
# or
./battle_royale.exe
```也可以打開資料夾找到 `battle_royale.exe` 並執行
### 使用 Makefile 進行編譯
> 需要安裝 [MASM32](https://www.masm32.com/index.htm)
```bash
make # or make all
```## 遊戲流程
## 專案架構
### 目錄結構
```bash
battle-royale/
│
├── src/ # 源代碼目錄
│ └── battle_royale.asm # 主程式
│
├── bin/ # 編譯後的二進制文件和可執行文件
│ └── battle_royle.exe # 可執行文件
│
├── docs/ # 文件目錄
│ └── development.md # 開發相關文檔
│
├── assets/ # 資源文件,如圖像、音效等
│ ├── docs/ # 文件用圖像
│ ├── images/ # 遊戲用圖像
│ └── sounds/ # 遊戲用音效
│
├── Makefile # 編譯腳本
├── README.md # 專案說明文件
└── .gitignore # Git忽略文件配置
```### 程式架構
- **WinMain**: 程序的主入口點。負責初始化應用程序並進入消息循環。
- **WndProc**: 處理窗口消息的過程。
- **TopXY**: 計算窗口在屏幕上的位置。
- **generateRandomNum**: 生成範圍內的隨機數。
- **initGameplay**: 初始化遊戲的主要變數。
- **paintBackground**: 繪製遊戲背景。
- **paintScoreBar**: 繪製分數條。
- **paintPlayer**: 繪製玩家角色。
- **paintZombie**: 繪製所有殭屍。
- **playSound**: 播放聲音。
- **paintGadget**: 繪製遊戲中的道具。
- **updateScrenn**: 更新遊戲畫面。
- **updatePlayerPosition**: 更新玩家位置。
- **activateZombie**: 激活一隻新的殭屍。
- **updateZombiePositions**: 更新所有殭屍的位置。
- **checkZombieCollision**: 檢查殭屍與玩家之間的碰撞。
- **checkGadgetCollision**: 檢查道具與玩家之間的碰撞。
- **checkBuffEffect**: 檢查道具效果。
- **ThreadProc**: 遊戲主循環的線程過程。## 開發工具
### 程式開發
- [MASM32 SDK](https://www.masm32.com/index.htm) - 工具集,包含 assembler、editor、linker 等工具
- Assembler: `ml.exe` 用於將組合語言源代碼轉換成機器代碼。
- Linker: `link.exe` 用於將組譯器產生的對象檔案連結成可執行檔案。
- [Visual Studio Code](https://code.visualstudio.com/), [MASM Editor](https://www.masm32.com/) - 編輯器,用於編寫組合語言程式碼
- [ChatGPT](https://chat.openai.com/) with GPT4.0 - 協作工具,詢問程式碼、開發問題等
- [draw.io](https://app.diagrams.net/) - 繪圖工具,用於繪製專案架構、流程圖### 影音素材
- [DALL·E](https://openai.com/dall-e-3) - 圖片生成工具,用於製作遊戲素材
- [Mixkit](https://mixkit.co/free-sound-effects/game/) - 遊戲音效素材
- [Cyberpunk Computer Game | IDRA by Alex-Productions](https://www.chosic.com/download-audio/31973/) - 背景音樂> Credit for Music: Music promoted by [Chosic](https://www.chosic.com/free-music/all/), [Creative Commons CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
## 貢獻者
[contributors-shield]: https://img.shields.io/github/contributors/xxrjun/battle-royale.svg?style=for-the-badge
[contributors-url]: https://github.com/xxrjun/battle-royale/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/xxrjun/battle-royale.svg?style=for-the-badge
[forks-url]: https://github.com/xxrjun/battle-royale/network/members
[stars-shield]: https://img.shields.io/github/stars/xxrjun/battle-royale.svg?style=for-the-badge
[stars-url]: https://github.com/xxrjun/battle-royale/stargazers