GDE-X开发进展 任务调度机制实现

在之前的设计中有提到,游戏过程就是一个有限状态机。而之前状态机我们已经实现,我们在此之上实现之前提到的

驱动级任务及临时任务的概念。

 

我们可以认为 地图及场景切换 是我们的驱动级任务。而战斗、弹出窗口、小游戏等是游戏中的临时任务。

 

对于我们的游戏引擎,必须能够方便的添加新的场景、随时启动子任务。而这一切在基于我们的引擎开发的时候不应该再要考虑架构上的资源管理、内存管理等问题。

 

下面是我们的类图:

 

 

GDE_Task是我们的所有任务的基类,具有属性 EngineInstance 用于保存游戏引擎实例,RootUIElement用于保存该任务的根绘图元素(用于界面绘制)。

 

派生类StateMachine(状态机) 具有方法 设置根元素 SetRootUIElement 和 切换下一个状态 RunNextStatus

派生类SubTask(子任务) 具有方法 设置根元素 SetRootUIElement 和 子任务结束 SubTaskEnd

 

然后下面我们给出三个用于测试的类,都派生ITask接口,必须实现 Run方法作为具体任务的逻辑入口。

 

编辑界面 TestStatus1 为 主界面,有三个按钮“新游戏”“读取进度”“退出”。

编辑界面 TestStatus2 为 一个场景,载入一个背景图片。

编辑界面 SubTaskTest 为一个战斗场景,具有一个提示栏和一个按钮,点击按钮则认为是该战斗结束。

 

具体逻辑为 ,在主界面点新游戏 ,切换到场景1,然后立即打开战斗,当战斗退出时,又回到场景1

 

下面为测试结果截图:

 

点击新游戏进入

 

 

 

 

点击结束战斗,回到场景

 

 

 

下面是任务调度核心部分代码:

 

 

下面是三个测试界面的启动代码:

 

 

ITask接口部分代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值