快速开始
安装
通过 NuGet 安装:
bash
dotnet add package FunGame.Core基本概念
FunGame.Core 是一个回合制游戏框架库,提供:
GamingQueue/MixGamingQueue/TeamGamingQueue— 回合制队列引擎(核心)Character— 角色实体Skill/Effect— 技能与特效系统EquilibriumConstant— 游戏平衡常数配置IGamingQueue— 队列接口(可自定义实现)
第一个回合
框架通过 接口驱动 设计,最直接的方式是使用 MixGamingQueue 或 TeamGamingQueue:
csharp
using FunGame.Core.Entity;
using FunGame.Core.Model.Framework;
using FunGame.Core.Model.Queue;
// 1. 创建角色
// 角色通过继承 Character 类来定义(见下一章),这里先直接 new 通用角色
Character player = new()
{
Name = "玩家1",
NickName = "勇者",
InitialHP = 80,
InitialATK = 20,
InitialSPD = 120
};
Character enemy = new()
{
Name = "敌人",
NickName = "魔王",
InitialHP = 100,
InitialATK = 15,
InitialSPD = 100
};
// 2. 创建混战模式队列
List<Character> characters = [player, enemy];
MixGamingQueue queue = new(characters, Console.WriteLine)
{
GameplayEquilibriumConstant = new EquilibriumConstant() // 可选:自定义平衡常数
};
// 3. 加载地图(可选),初始化队列
// queue.LoadGameMap(myMap);
queue.InitActionQueue();
// 4. 设置 AI 控制(自动化战斗)
queue.SetCharactersToAIControl(cancel: false, characters);
// 5. 游戏循环
int round = 0;
while (round < 100)
{
Character? actor = queue.NextCharacter();
if (actor != null)
{
Console.WriteLine($"=== 回合 {++round} ===");
Console.WriteLine($"现在是 [ {actor} ] 的回合!");
bool isGameEnd = queue.ProcessTurn(actor);
if (isGameEnd) break;
queue.DisplayQueue();
}
queue.TimeLapse();
}
Console.WriteLine("--- 游戏结束 ---");手动控制(玩家决策)
如果不想全 AI,可以让特定角色由玩家控制:
csharp
// 全部 AI
queue.SetCharactersToAIControl(cancel: false, characters);
// 取消 player 的 AI,改为事件驱动
queue.SetCharactersToAIControl(cancel: true, player);
// 绑定选择事件
queue.SelectSkillEvent += (queue, character, skills) =>
{
// 在这里弹出 UI 让玩家选技能
return skills.FirstOrDefault();
};下一步
- 学习如何 自定义角色
- 学习如何 自定义技能
- 查看 完整示例
- 了解 GamingQueue 事件模式