DH-SRPG 一:项目设置与Main.tscn
拿到别人的Godot项目,我们应该先看一下这个项目的项目设置,因为这里包含了项目有哪些全局的节点,按键映射有哪些改动,碰撞层是如何设置等等信息。所以,我们先来看看项目的设置吧。
项目设置:

首先是窗口设置,这里有两个部分,窗口的宽高与拉伸模式,这里拉伸模式使用viewport,如果使用disabled的话,部分UI会受到影响。

这里是把默认的映射都删掉了的,目前有7个映射分别是控制指针移动的SWAD和进行确认、取消、切换的KO;键,应该还有一个映射对应L但是目前还没有想到L的功能所以没有添加。

GData:是用于保存全局数据的节点,就目前来说(2023/6/20)它保存并初始化了一个玩家控制器用来表示玩家这种需要持续到游戏关闭的数据。
GCreateGrid:一个用来生成格子的全局节点,由create-grid插件创建,它可以根据一系列参数来生成一些二维坐标点。
GFloatInfo:一个用来生成浮动数值的全局节点,由float-info创建创建,它可以生成一个Label节点来显示文字并播放动画。

create-grid:这个插件在之前的介绍视频介绍过。
float-info:这个插件得益于Hi小胡的视频,这是个非常棒且十分有用的视频,大家可以了解一下。

现在我们来看一下运行程序见到的第一个场景
Main.tscn
这个场景的节点结构与代码非常简单

一个用来显示标题的TitleCR与介绍游戏的InfoCR,重点是用来作为菜单的MenuCR与下面的Local、Net、Setting、Quit这一系列节点。
然后该场景的实际脚本只有一个main.gd,Local这些节点位于others/template_select_item下的template_select_item.tscn的使用,这个场景提供设置显示文字、颜色与保存对象的功能。
Main.gd
这个脚本做的事情很简单,就是根据按键映射来移动光标并在点击确定时根据当前光标选中的来执行一些功能。
menu_items决定有那些节点作为选项
pointer就充当数组下标
而current_item用于pointer变化时对上一个item的设置的撤销,同时也代表来当前选中的
他们在_ready方法中初始化
下面是使用他们的代码
可以看到,在获取玩家输入 S 和 W 时进行了一些操作,实现是确认pointer没有超过数组下标,然后就是将current_item的选中状态设置为 false 然后设置新的节点作为选中项并设置选中。
在点击确定K时,会获取属于template_select_item的current_item的文本并根据文本来进行操作
这一部分非常简单,这部分的逻辑在后续的有选项可供选择的场景中都有一定的应用。
下一部分我们将调用 confirm_local() 进入游戏的第零关,并介绍Scene由哪些部分组成以及它们的用途。
致歉:因为项目的更新随时都有可能会破坏原有的代码,您在看到此文时它可能已经不是最新的了,请以现在项目的具体情况为准。
欢迎大家给项目提Issues
项目地址:https://gitee.com/DH-DoveG/dh-srpg-demo