天天看點

Godot遊戲開發之FlappyBird(十三)------抖一抖

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

教程目錄

    • 本節效果
    • 搭建相機
    • 挂載腳本

本節效果

Godot遊戲開發之FlappyBird(十三)------抖一抖

搭建相機

  1. 添加一個Camera2D節點

    将其Anchor Mode 詳細參考 設為 Fiexd TopLeft:錄影機的位置是固定的,是以左上角始終位于原點。

  2. 勾選Current 詳細參考,這樣新添加的錄影機才能覆寫預設錄影機。如果為true,則該錄影機是目前場景的活動錄影機。這樣新添加的錄影機才能覆寫預設錄影機
    Godot遊戲開發之FlappyBird(十三)------抖一抖

挂載腳本

  1. 添加一個Tween節點作為Camera2D的子節點 詳細參考

    Tween與AnimationPlayer類似,都是與制作動畫效果的節點,Tween比AnimationPlayer更适合用于您事先不知道最終值的動畫

Tween節點是Godot Engine裡原生的插值動畫節點,類似于Unity的插件iTween或DoTween。Unity的很多插件甚至付費插件,在Godot Engine中都有原生替代品,這一點不得不大贊一個!!!
Godot遊戲開發之FlappyBird(十三)------抖一抖
  1. 慣例, 重命名為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(十三)------抖一抖
  1. 至此,完成FlappyBird制作。