チェックポイント
CoddyのGodotジャーニー「シグナルと衝突」セクションの一部。レッスン 20/27。
チェックポイントを設定すると、スパイクに触れたときの移動先が変わります。そこで、開始地点を main.gd の先頭に置き、すべての関数から参照できる変数にします。
var start_point = Vector2(80, 280)
func _on_spikes_body_entered(body):
body.position = start_pointスパイクに触れると、その時点で start_point に入っている場所へ移動します。変数を変更すれば、次に触れたときはそこへ移動します。
start_point = ... を使って変更します。関数内で var start_point = ... と書くと、その関数内でのみ有効な新しい変数が作られます。先頭にある変数はそのままです。
チャレンジ
中級旗に到達したら:
start_pointをチェックポイントの位置である$Checkpoint.positionに設定します。- 旗をミント色にします:
$Checkpoint.modulate = Color(0.49, 0.95, 0.75)。
旗に触れてから、トゲに触れてください。旗の位置に戻ってくるはずです。
自分で試してみよう
extends Node2D
var start_point = Vector2(80, 280)
func _ready():
$Spikes.body_entered.connect(_on_spikes_body_entered)
$Checkpoint.body_entered.connect(_on_checkpoint_body_entered)
func _on_spikes_body_entered(body):
body.position = start_point
func _on_checkpoint_body_entered(body):
pass
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
シグナルと衝突のすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド