Files
SporeBG-Conid/README.md
2026-02-06 13:09:48 +08:00

80 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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写的项目想写个比较完整的出来但是遇到了一堆问题只能说**路漫漫其修远兮,吾将上下而求索**,如果你有好的建议也是可以提出来的