使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-最高分和数据记录(十一)


使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞船动画(三)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-滚动背景(四)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人配置(五)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-碰撞框和受伤区域(六)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-受伤 爆炸 销毁组件(七)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-敌人生成器(八)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-标题菜单及游戏结束界面(九)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-基础得分系统(十)

整体开发还是基于组件的思维。相比于工厂模式或者状态机,可能有些老套,但是更容易理解和编程

教程大概是2个小时 基本上一个小时就能有游戏的雏形。

不过由于都是初学者,所以大概整体是应该4个小时左右。

本篇文章实现最高分和数据记录,约15分钟

得分界面修改

首先切换到游戏结束界面,现在已经有两个标签GameOverLabel,GameOverLabel
在这里插入图片描述

我们需要制作成有得分的标签,如同下图这样
在这里插入图片描述
大概率能看出来需要在VBoxContainer增加两个标签, 然后还需要调整位置和距离

新建两个容器HBoxContainer插入其中,更改名称ScoreHBoxContainer和HighscoreBoxContainer
然后添加分数标签和值
在这里插入图片描述
设置内容,更改字体。这个和之前类似。使用已经有的default

在这里插入图片描述
现在需要让他们占据更大的空间。需要将得分标签填满整个标签行
设置标签检查器属性 layout – container sizing -设置扩展,能够看到分数占据了剩余的行空间

在这里插入图片描述
复制这两个标签到另一个HBoxContainer中,作为高分设置,如图所示,记得更改text文本

在这里插入图片描述
然后能够注意到press “space” to Return to the Start Menu文字离分数太近了
需要在VBoxContainer更改间隔,通过更改检查器属性Separtion
但是这样有个问题,主要就是所有间隔都修改了,因此可能需要添加控制节点来控制间隔

在这里插入图片描述
通过添加一个用户节点,实际上是个空节点,然后设置属性为32px,于是能够看到有一个32px的固定间隔被设置
这种做法是一种比较简单的方法,实际上就是用一个节点做空间分隔

在这里插入图片描述
实际上有很多更加简单的方法,不过暂时先这样设置
接下来需要设置这些ui的路径,将这些可能常修改的ui设置唯一名称,防止移动位置后代码运行异常
如ScoreValue和HighScoreValue

在这里插入图片描述

数据显示

首先ctrl初始化两个分数值
在这里插入图片描述
还需要访问游戏统计数据,因此需要访问game_stats ,声明并且设置检查器属性为game_stats

在这里插入图片描述
添加代码

具体逻辑十分简单,就是判断分数是不是最高分,如果是最高分,赋值
然后将分数传递显示到text窗口中

记住ready中还需要清零分数

在这里插入图片描述
这样运行后分数就能显示了,但是高分的记录存在问题,即使分数低也会被记录为高分,这是由于资源管理没有设置导致的,需要设置game_stats资源。因为game_stats只要切换没有这个资源的场景。就会释放节点。因此保存消失
在这里插入图片描述

数据记录

因此我们需要设置一个脚本或者全局变量,将高分存储下来,

新建一个脚本,保存为resource_stash,这个脚本的任务是加载游戏统计信息,脚本代码如下
代码逻辑是加载游戏状态信息

在这里插入图片描述
在项目设置-自动加载中,选择这个脚本设置为自动加载
在这里插入图片描述
这样再运行,高分保存就正常了,可以多次运行游戏死亡测试
在这里插入图片描述
godot核心是需要将关键数据不进行释放。一直维持在内存中,这样就能记录最高分。
godot只记录资源的修改,修改后务必不能释放,
如果资源不被任何部分引用,godot就会抹去对其资源的所有改动。
因此需要保存关键资源

这不是最优的方式,你其实可以查找更好的方式。

资源

https://download.csdn.net/download/watch361/89541450

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级馒头神

看看谁给我第一个打赏。太感谢您

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值