欢迎光临散文网 会员登陆 & 注册

DH-SRPG 四:单位管理与控制器

2023-07-01 17:08 作者:DH_DoveG  | 我要投稿

UnitManage是用于管理游戏中的Unit的节点。

它的功能囊括了:单位查找、单位移动战斗处理、游戏回合管理,单位行动顺序等。

新建关卡时,可以直接在UnitManage节点下添加Unit节点

UnitManage

回合部分

属性:


方法:

构成回合的方法并不复杂。

实现是 start 这个方法作为开始由 Scene 调用,这个方法实现会获取自己的所有子节点,也就是在场景编辑器中添加的unit和玩家挑选出战的那些unit.

start会将他们添加到行动列表里并完成信号的连接。然后调用settlement对unit进行排序再调用 cycle 开始回合的循环。

cycle 会获取下一个要行动的unit并让unit开始行动。

unit在结束行动时会发出 sction_end_signal 信号,我们让这个信号连接到 unit_action_end 方法,并在 cycle 方法中会再一次调用 cycle.这样就形成一个循环了。

get_next_unit 在获取到最后一个unit之后再调用时会调用 settlement 对行动列表行动顺序进行更新。


管理部分

属性:

在游戏中被击败的unit并不会直接被析构掉,而是保存到 cemetery 之中。

cemetery本身没有什么用,只是以后可能会有让unit再次战斗的技能才搞的。

方法:

可以通过多种方式获取unit

unit 在被击败时会调用这个方法来料理后事

Controllers

其实在调用 unit 的 start_action 时 unit 还会调用 controllers 的 unit_start_action,因为如果是 ai 的话,会很需要这个。而玩家就不需要了。

属性与方法

因为需要重写,所以很多方法都是 pass.

值得注意的是,控制器的 camp 属性。这个属性可以用于区分敌我(虽然unit可以攻击自己人)不过相同camp的unit在移动时是可以穿过的(也就是不会拦路),而不同的camp之间会互相拦路。


下一节我们将介绍一下单位Unit。


致歉:因为项目的更新随时都有可能会破坏原有的代码,您在看到此文时它可能已经不是最新的了,请以现在项目的具体情况为准。

欢迎大家给项目提Issues

项目地址:https://gitee.com/DH-DoveG/dh-srpg-demo


DH-SRPG 四:单位管理与控制器的评论 (共 条)

分享到微博请遵守国家法律