[手把手带你Godot游戏开发]FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)

罗永浩都抖音了,要不咱们也抖一抖?面对疾风吧!

游戏的大体已经完结,本节将为游戏增加屏幕震动效果,这将是画龙点睛的一笔!

本章节效果图

[手把手带你Godot游戏开发]FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)

文章目录

搭建场景

  • 添加一个Camera2D节点
    将其Anchor Mode设为Fiexd TopLeft
    勾选其Current,这样新添加的摄像机才能覆盖默认摄像机
  • 添加一个Tween节点作为Camera2D的子节点,更名为"CameraShaker",并为其添加"CameraShaker.gd"脚本

Tween节点是Godot Engine里原生的插值动画节点,类似于Unity的插件iTween或DoTween。Unity的很多插件甚至付费插件,在Godot Engine中都有原生替代品,这一点不得不大赞一个!!!

[手把手带你Godot游戏开发]FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)

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运行游戏

肿么样?有木有感受到心灵地震颤?
[手把手带你Godot游戏开发]FlappyBird:11 番外篇:罗永浩都抖音了,要不咱们也抖一抖?(屏幕震动)

上一篇:Godot视口


下一篇:在godot中使用haxe语言(四)