使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-游戏存储(结束!)


使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击(一)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-激光组件(二)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-飞船动画(三)
使用Godot4组件制作竖版太空射击游戏_2D卷轴飞机射击-滚动背景(四)
使用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分钟

这就是这个教程的结尾了,恭喜你能坚持到这里!

分数储存

之前分数是存储在游戏中,现在需要存储在文件中,每次启动游戏后调用

切换到gameove游戏场景,新建两个函数读取分数和存储分数,

代码逻辑就是读取文件,如果有错误就不读取,否则取出游戏和高分

保存的话就是新建文件保存

extends Control

const SAVE_PATH = "user://save.cfg"
const TEST_SAVE_PATH = "res://save.cfg"
 
var  save_path = TEST_SAVE_PATH

@onready var score_value: Label = %ScoreValue
@onready var high_score_value: Label = %HighScoreValue

@export var game_stats : GameStats

func _ready() -> void:
	load_highscore()
	if game_stats.score >game_stats.highscore:
		game_stats.highscore =game_stats.score
		save_highscore()
	score_value.text =str(game_stats.score)
	high_score_value.text =str(game_stats.highscore)
	


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
	if Input.is_action_just_pressed("ui_accept"):
		game_stats.score = 0 
		get_tree().change_scene_to_file("res://menus/menu.tscn")

func load_highscore()-> void:
	var config  = ConfigFile.new()
	var error = config.load(save_path)
	if error !=  OK:return
	game_stats.highscore = config.get_value("game","highscore")


func save_highscore()-> void:
	var config  = ConfigFile.new()
	config.set_value("game","highscore",game_stats.highscore)
	config.save(save_path)

判断逻辑在ready中每次初始都读取,然后判断分数为最高分,就保存
在这里插入图片描述
运行一次游戏,攻击消灭几个敌人后,死亡,可以看到生成了save.cfg文件
在这里插入图片描述
这是一个简单的文件存储读取系统,游戏制作结束!

写在最后

这是我完成的第一个教程,实际上我也是跟着教程视频,一步一步做完了这个完整的游戏

godot一般都是从2D平台跳跃游戏做起,很多人都是看了b神的视频做的2d马里奥游戏

但是我是雷电的游戏玩家,我仍然觉得这个射击游戏才是我的最爱

并且这款游戏的制作对于新手玩家来说更加友好,毕竟很多组件都已经写好,只需要调用即可

这种制作方式也能让你更好的理解godot引擎,实际上你完全可以造自己的轮子,然后作为子节点组件进行调用

这样的方式对于以后用godot开发游戏也有很大帮助

实际上,制作游戏本身我认为就是在玩游戏。只不过这个游戏交互性不太好,你需要输入英文字母,才能游玩这个复杂的游戏

这种游戏的刺激比不上短视频,不过完成后,你会得到更加悠久的快感

下一个游戏教程我还在构思,最终我想在godot上实现自己的废都物语类型的游戏

也希望您通过学习,能做出自己喜欢的游戏。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超级馒头神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值