Godot 关于复杂功能节点的场景设计的思考

Godot 3.3

在关于 Godot 的角色场景的开发中,如果角色的功能并不复杂时,我们可以不那么注意 Godot 场景的设计,而当项目越来越大,场景的节点越来越多,一个场景中的功能越来越多时,我们的场景、代码的量与代码逻辑变得越来越复杂。这个时候,应当对 Godot 每个节点和脚本进行分类与设计。

比如我们要设计一个复杂的角色,首选要对他的功能进行一个分类,例如我对一个角色节点的分类。

在这里插入图片描述

这样不至于一个节点中的功能过多,代码过多,TypeLayer 节点负责做 每层节点的中转站,处理器。根节点(Player 节点)用于对外直接调用方法的一个节点。

比如 Controller 节点的一个控制器需要对节点进行移动,或其他动作的操作,那么就连接发出的信号到这个 TypeLayer 节点上,判断与处理,之后调用其中的 Canvas 层进行播放移动动画,进行动画处理,然后调用 父节点(KinematicBody2D 类型节点)的 move_and_slide 方法进行移动等操作。

又比如 Collision 碰撞处理层 节点,这一层主要判断碰撞相关, Area2Dbody_entered 信号是连接到 Collision 节点上的,如果 Area2D 发现了敌人(这个区域的作用看你自己如何去定义了,我是做为发现敌而添加的),那么 Collision 会发出一个自定义的信号 found_enemy(发现敌人)的信号,并且这信号连接到 TypeLayer 节点的一个方法上,然后由 TypeLayer 进行处理,调用 Controller 中的控制的方法。

这样做下来,整个场景的节点、逻辑清晰,且方便管理与扩展,每个分类节点下的子节点也可以继续向下一直分类。


也许你有能好的思路,那也欢迎提出你的想法,在评论区交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值