罗永浩都抖音了,要不咱们也抖一抖?面对疾风吧!
游戏的大体已经完结,本节将为游戏增加屏幕震动效果,这将是画龙点睛的一笔!
本章节效果图
文章目录
搭建场景
- 添加一个
Camera2D
节点
将其Anchor Mode
设为Fiexd TopLeft
勾选其Current
,这样新添加的摄像机才能覆盖默认摄像机 - 添加一个
Tween
节点作为Camera2D
的子节点,更名为"CameraShaker",并为其添加"CameraShaker.gd"脚本
Tween
节点是Godot Engine里原生的插值动画节点,类似于Unity的插件iTween或DoTween。Unity的很多插件甚至付费插件,在Godot Engine中都有原生替代品,这一点不得不大赞一个!!!
CameraShaker的实现
注意:2D和3D中,屏幕(摄像机)震动的方式略有不同,这一篇博文《Godot Engine:屏幕振动效果的实现》提供了3D版本的实现。
#CameraShaker.gd
extends Tween
var camera : Camera2D
var strength : float = 50 #振幅
var duration : float = 1.0#震动时长
func _ready():
add_to_group("GAME_STATE") #加入"GAME_STATE"组
camera = get_parent() as Camera2D
func disturb_offset(s : float):
camera.position.x = rand_range(-s,s)
camera.position.y = rand_range(-s,s)
func on_game_over():
interpolate_method(self,"disturb_offset",strength,0,duration,Tween.TRANS_SINE,Tween.EASE_OUT,0)
start()
运行游戏
按F5
运行游戏
肿么样?有木有感受到心灵地震颤?