本系列是根據老師的教程做的, 中間遇到些小問題, 于是把自己做的過程記錄下來, 便于下次檢視, 如有錯誤, 歡迎批評指正, 附上老師的原位址: 開發遊戲的老王
教程目錄
-
- 本節效果
- 搭建相機
- 挂載腳本
本節效果

搭建相機
-
添加一個Camera2D節點
将其Anchor Mode 詳細參考 設為 Fiexd TopLeft:錄影機的位置是固定的,是以左上角始終位于原點。
- 勾選Current 詳細參考,這樣新添加的錄影機才能覆寫預設錄影機。如果為true,則該錄影機是目前場景的活動錄影機。這樣新添加的錄影機才能覆寫預設錄影機
Godot遊戲開發之FlappyBird(十三)------抖一抖
挂載腳本
-
添加一個Tween節點作為Camera2D的子節點 詳細參考
Tween與AnimationPlayer類似,都是與制作動畫效果的節點,Tween比AnimationPlayer更适合用于您事先不知道最終值的動畫
Tween節點是Godot Engine裡原生的插值動畫節點,類似于Unity的插件iTween或DoTween。Unity的很多插件甚至付費插件,在Godot Engine中都有原生替代品,這一點不得不大贊一個!!!
- 慣例, 重命名為CameraShaker
#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()
-
bool interpolate_method ( Object object, String method, Variant initial_val, Variant final_val, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 )
對object的method從initial_val到final_val進行動畫處理,持續時間(duration)數秒,然後延遲(delay )數秒。用連續值調用方法。
-
start 開始補間。您可以在此之前和之後定義動畫。
以上 詳細參考
Godot遊戲開發之FlappyBird(十三)------抖一抖
- 至此,完成FlappyBird制作。