Open4
Godot 小技集
GodotでコードをDRYにする3つの方法。継承、ヘルパー、Mixin
- 継承(is-a)
- TemplateMethodなど。差分プログラミング
- ヘルパー
- 処理の外出し。static関数にする。Utilsでもある。
- Mixin(has-a)
- Nodeにスクリプトを書いたシーンを使う側でアタッチする。〇〇ableみたいな名前になる
Mixinの例
メニューなど、カメラが動いても画面に固定表示したい Conrol 要素は、CanvasLayer 配下に作成すると解決した。
BGM など、get_tree().change_scene_to_packed()
でシーンを切り替えても継続的に動作してほしいものは、autoloads に設定する。
カメラをシェイクする方法。
extends Camera2D
const SHAKING_TIME = 2.0
var shaking_time := 0.0
func _process(delta: float) -> void:
if shaking_time:
shaking_time = maxf(0.0, shaking_time - delta)
shaking()
func shake() -> void:
shaking_time = SHAKING_TIME
func shaking() -> void:
offset.x = 32 * randf_range(-1, 1) * shaking_time
offset.y = 18 * randf_range(-1, 1) * shaking_time