mirror of
https://github.com/zhenyan121/SporeBG-Conid.git
synced 2026-04-10 06:14:08 +08:00
80 lines
3.4 KiB
Markdown
80 lines
3.4 KiB
Markdown
# SporeBG-Conid
|
||
|
||
一个棋类游戏,与孢子分裂有关,本为**cpp重构版**,游戏核心主要玩法由**cold1840**制定的,可以看他的[python版本](https://github.com/cold1840/SporeBG),这个版本旨在用**cpp**完全重写这个游戏,**注意本项目并未使用到里面的代码,核心逻辑实现是不一样的**,且本项目打算加入许多功能,**整体玩法也是完全不一样的**,同时**cold1840**也在一定程度上参与项目的开发与维护
|
||
|
||
## 玩法介绍
|
||
|
||
回合制,双人人对战
|
||
|
||
初始的时候双方玩家都会拥有两个自己的孢子
|
||
|
||
玩家可以通过点击孢子来切换行动模式
|
||
|
||
### 属性
|
||
|
||
- `HP`: 生命值
|
||
- `ATK`: 攻击力
|
||
|
||
### 行动模式
|
||
|
||
- **GROW:** 玩家可以令孢子生长获得一个新的孢子,选择生长的孢子`HP`减半,`ATK`增加2,新生长出的孢子为变化完属性的母孢子的属性,无法在非空格子`GROW`,`GROW`有效范围是一格
|
||
- **MOVE:** 玩家可以移动一个孢子,移动距离为一格,如果移动的目标是对方孢子,则会进行一次`攻击`
|
||
- **攻击:** `攻击`通过`MOVE`触发,攻击对象为非己方孢子,攻击对方造成孢子`ATK`的伤害,自身会受到对方`ATK`一半的伤害,如果对方死亡则会移动到对方位置
|
||
- **SPORE:** 玩家可以使一个孢子移动2格,只能是空格子,无法`攻击`,孢子会扣除两点`HP`
|
||
|
||
### GROUP介绍
|
||
|
||
同一玩家的孢子会自动和上下左右的孢子构成一个`GROUP`,每回合每一个`GROUP`的孢子只能有一次行动机会,除`SPORE`外,`GROW`和`MOVE`的范围是一个`GROUP`所有孢子可以行动的范围
|
||
|
||
### 补充说明
|
||
|
||
- 每一个玩家操作结束,所有孢子的`HP`加2
|
||
|
||
## 构建指南
|
||
|
||
**如果是mingw请使用最新版本,否则可能会构建失败**
|
||
|
||
确保电脑安装了`cmake`和`ninja`,使用`gcc`与`g++`:
|
||
|
||
```bash
|
||
git clone https://github.com/zhenyan121/SporeBG-Conid.git
|
||
mkdir build
|
||
cd build
|
||
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ ..
|
||
ninja
|
||
```
|
||
|
||
## 目前更新计划
|
||
|
||
- 完善网络对战结束处理
|
||
- 整改输入和事件分发系统
|
||
|
||
## 待添加玩法
|
||
|
||
- 道具(直接消灭一个孢子之类的)
|
||
- 技能(将孢子发射出去,不断碰撞掉血)
|
||
- 随机事件(例如:小于多少的孢子会死亡)
|
||
|
||
## 项目结构
|
||
|
||
```bash
|
||
SporeBG-Conid/
|
||
├── src/
|
||
│ ├── core/ # 核心应用与窗口管理
|
||
│ ├── game/ # 游戏逻辑核心:棋盘、棋子、规则等
|
||
│ ├── graphics/ # 图形渲染相关
|
||
│ ├── input/ # 输入处理系统(键盘、鼠标)
|
||
│ ├── scenes/ # 场景管理系统(菜单、对局等)
|
||
│ ├── utils/ # 工具类与配置
|
||
│ └── main.cpp # 程序入口(SDL3 回调)
|
||
├── assets/ # 资源文件:图片、字体、音效
|
||
│ ├── images/
|
||
│ ├── fonts/
|
||
│ └── sounds/
|
||
├── config/ # 配置文件(如 game.ini)
|
||
└── build/ # 编译输出目录(建议 .gitignore 掉)
|
||
```
|
||
|
||
## 一些想说的
|
||
|
||
这是我第一次用cpp写的项目,想写个比较完整的出来,但是遇到了一堆问题,只能说**路漫漫其修远兮,吾将上下而求索**,如果你有好的建议也是可以提出来的 |