文章目录
- 分数储存
- 写在最后
使用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上实现自己的废都物语类型的游戏
也希望您通过学习,能做出自己喜欢的游戏。