Godot Engine:Flappy Bird中小鸟死亡后弹窗的制作
https://blog.csdn.net/dyf1055318607/article/details/130142632
本篇文章写的是是开发游戏的老王留的课后练习,项目的前一部分是老王上课做的,哈哈!
在做之前先来看一看做弹窗需要用到的节点类型吧
TextureRect类型:用于在UI上显示图片
Label类型:用于显示UI上显示成绩
AnimationPlayer类型:信息板动画容器
1、搭建如下图的场景树

将素材中的score.png图片添加到TextureRect的Texture中

启用Expand,然后按住Shift将得分板拖拽到合适的大小,移动到窗口下面

将显示窗口分别移动到对应位置,并且在Text中任意输入内容,方便我们调整位置和字体大小。
将Label best和Label score中属性中的Align和V Align均设置为center。
Align:控制文本的水平对齐。支持左对齐、居中对齐、右对齐和填充,或者两端对齐。
V Align:控制文本的垂直对齐。支持顶部、中心、底部和填充。


字体设置
给TextureRect添加AnimationPlayer节点
设置AnimationPlayer
一共需要两个动画,一个是游戏进行时得分板隐藏的动画,一个是游戏结束后展示得分板的动画

得分板显示
该动画博主做了10帧,得分板从下向上弹出

具体的操作步骤如下
将动画进度条拖拽到第0帧处,插入关键帧

将动画进度条拖拽到第10帧,将得分板移动到最终位置,插入关键帧

得分板隐藏
该动画只需要1帧,操作方法和上图一致

最后一步,也是最重要的一步啦,那就是代码控制
在此之前,先对老王项目里的GameData.gd的代码稍稍改动一下啪,因为试了好多种写法,总会报错。



给Texture Rect添加脚本代码内容如下
-
extends TextureRect -
func _ready(): -
add_to_group("GAME_OVER") -
func on_game_over(): -
$Labelscore.text=str(GameData.Score) -
$Labelbest.text=str(GameData.record) -
$AnimationPlayer.play("show")
下面我们来看看结果

相关推荐
JustFlap:Just Flap是一款基于Godot 3.2.3 Game Engine的街机飞盘小鸟风格游戏
JustFlap:Just Flap是一款基于Godot 3.2.3 Game Engine的街机飞盘小鸟风格游戏
Flappy Bird资源
Godot Engine版教程地址: 《【手把手带你Godot游戏开发 第一弹】零基础入门案例:FlappyBird(教程目录及源代码)》 https://orzgame.blog.csdn.net/article/details/105266192
CloneFlappyBird:克隆游戏FLAPPY BIRD utilizando o video base做“ crie seus jogos”
CloneFlappyBird:克隆游戏FLAPPY BIRD utilizando o video base做“ crie seus jogos”
[手把手带你Godot游戏开发]FlappyBird:4.1无限地面之Godot青年(AnimationPlayer)版
本章节效果图 前言 为什么这个版本叫Godot版呢?因为如果用unity等引擎来实现这个小功能,大家可能不会选择它的动画系统,不是说其它引擎不能,是比较麻烦,大家宁愿选择写两行代码来实现。而Godot Engine的动画系统实在是太方便了,所以用Godot开发游戏的时候,我们不妨充分利用它。 步骤 复制一个”Floor”并把两个”Floor”分别命名为”Floor_1″和”Floor_2″ 添加一个AnimationPlayer,注意:”Floor_1″和”Floor_2″共用一个AnimationPlayer就可以。 在”AnimationPlayer”添加一个名为”scroll”的动
[手把手带你Godot游戏开发]FlappyBird:5.1 无尽水管子滚滚来(一)
本章节效果图 步骤 制作Pipe.tscn 按照下图的样子,在场景树上新建一棵子树(红框中的内容),“Pipe”是一个Node2D,其它节点的名称或前缀即代表其类型 关于Godot的碰撞和碰撞检测的使用,请看这几篇文章: 《Godot Engine:5种碰撞体以及RigidBody的4种模式》 《Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D与Area2D碰撞)》 《Godot Engine:碰撞和碰撞检测的简单实例(RigidBody2D与StaticBody2D碰撞)》 在”Pipe”上添加一个名为”Pipe.gd”的脚本 #Pipe.gd extend


