godot2D游戏教程系列一(7)

  • 前言:

    • 用我们的GameManager这个脚本代码进行记录,在代码里面添加一个新的变量叫score,每消灭一个史莱姆就加一分,
    • 我们需要在史莱姆的代码的_on_area_entered函数里的进行加分,因为GameManager这个脚本代码是挂载在根节点上的,当我们获取到根节点之后,我们就可以使用到GameManager这个脚本代码的变量了
    • 接下来是给游戏添加ui来显示玩家的分数,在godot中场景和ui是分开渲染的,所以我们这里需要添加一个新的节点,CanvasLayer节点会单独渲染它所有的子节点,然后然后再将它们覆盖在游戏已有的场景之上
    • 成功添加之后我们在主场景会发现这样子的一个蓝色方框只要是放置在这个范围内的UI组件都会被显示在我们的屏幕上
    • 然后让我们选中CanvasLayer节点后添加label节点,Label节点是Godot里展示文字的节点
    • 选中label节点在右侧的检查器中看到text属性,我们可以在这里进行添加文字,在这里我们输入Score:0并且移动到左上角,注意在第三象限的左上角就是可视屏幕的左上角
    • 这里我们来修改一下label的字体和字号,我们来找到Theme Overrides属性就可以进行修改字体和字号大小了
    • 接下来我们需要让这个分数进行动态显示,所以我们依旧是来到GameManager这个脚本代码中,我们进行添加修改分数的代码,我们先新建一个score_label变量来获取根节点的label
    • 再把UI里面的label拖动到GameManager的score_label变量里面,记得这里要注意点击一下根节点,这样子就可以看到右边检查器的score_label
    • 同时我们还需要进行每帧更新玩家的分数,因为数是int所以我们这里还需要转换为字符串类型进行拼接
    • 然后让我们创建一个游戏结束的画面,我们复制多一个label重命名为Game over Label
    • 然后我们来设置它的text属性为GAME OVER!
    • 然后我们想要这个文字正好显示在画面的最中心,我们找到观察窗上面的锚点预设,找到中心点那个预设,点击之后,我们的GAME OVER!就会显示在画面的中心


    *

    • 我们接着设置一下字体的描边和描边颜色还有字号大小
    • 接着我们需要先隐藏这个游戏结束的文字
    • 接着我们到代码里面来控制这个游戏结束文字的显示,当玩家死亡的时候显示这个
    • 我们需要先到玩家节点的游戏结束函数中写一个判断,只有当游戏还没结束的候才能触发这个gamevoer函数
    • 我们这里的操作是通过操作根节点的GameManager脚本代码去控制游戏结束文字的显示
    • 我们先到GameManager脚本代码中添加一个新的函数和添加一个新的变量,show_game_over函数和game_over_label变量
    • 这里注意需要拖拽那个游戏结束文字的label到变量里面去哦
    • 然后我们再回到玩家节点的脚本代码中,我们需要设置玩家死亡时候出现游戏结束的文字
    • 实现过程:

    • 首先通过 ​​GameManager​​ 脚本统一管理游戏数据,在其中新增 ​​score​​ 变量,并在史莱姆被子弹击中的回调函数中进行加分。由于 ​​GameManager​​ 挂载在主场景根节点上,史莱姆脚本可通过获取根节点来访问并修改分数数据。

    • 随后为游戏添加分数显示 UI:在主场景中创建 ​​CanvasLayer​​ 节点以独立渲染 UI,再在其下添加 ​​Label​​ 作为分数文本,初始化为 ​​Score: 0​​,并通过主题覆盖设置字体与字号。在 ​​GameManager​​ 中声明 ​​score_label​​ 变量并绑定该 ​​Label​​,在逻辑更新中将整数分数转换为字符串,实时刷新显示内容。

    • 接着实现游戏结束提示界面:复制一个 ​​Label​​ 作为 "GAME OVER" 文本,使用锚点预设将其居中显示,并调整字号与描边效果,初始状态设为隐藏。在 ​​GameManager​​ 中新增 ​​game_over_label​​ 变量与 ​​show_game_over()​​ 方法,专门控制结束界面的显示。最后在玩家脚本的死亡逻辑中增加状态判断,确保仅在首次死亡时触发游戏结束,并通过调用 ​​GameManager​​ 的接口显示游戏结束 UI,完成分数系统与结束界面的整体联动。

    • 完成目标

    • 我是根据b站上的视频进行学习,并且总结写下笔记,然后做此分享。笔记非常详细以至于你可以通过查看文章进行快速学习并且制作出游戏出来。当然视频学习的链接我也放在下面了:

    • 视频学习:https://www.bilibili.com/video/BV1fuCrYFEoG?spm_id_from=333.788.videopod.sections\&vd_source=078d5d025b9cb472d70d8fda1a7dc5a6

    • 制作完成的成果,可以点击进去进行在线游玩:https://yunbiansanbu.itch.io/my-frist

    • 音频/美术资源包下载:https://pan.quark.cn/s/570e6714e5ea

相关推荐
云边散步1 天前
godot2D游戏教程系列一(5)
游戏·游戏开发
北冥没有鱼啊1 天前
UE5 离谱问题,角色动画不播放
游戏·ue5·ue4·游戏开发·虚幻
套码汉子3 天前
从 “重复造轮子” 到 “搭积木式开发”:活动系统架构如何支撑业务高效迭代
架构·系统架构·游戏开发·组件化
avi91116 天前
Unity 天命6源码- 商业游戏说明分析
开发语言·unity·c#·游戏开发·游戏源码
Focus_6 天前
如何借助AI在UE5中将图片批量生成3D模型
前端·aigc·游戏开发
SmalBox6 天前
【节点】[Float节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox7 天前
【节点】[Constant节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox8 天前
【节点】[Color节点]原理解析与实际应用
unity3d·游戏开发·图形学
SmalBox9 天前
【节点】[Boolean节点]原理解析与实际应用
unity3d·游戏开发·图形学