スクリーンセーバー:新しい色
CoddyのGodotジャーニー「ノードとシーン」セクションの一部。レッスン 28/28。
最後のステップでは、跳ね返るたびにロゴの色を次の色にします。4つの端で同じ処理を行うので、next_color()という1つの関数にまとめ、跳ね返るたびに呼び出します。
この関数はcolor_indexを1増やし、次にcolors[color_index]を表示します。色が3つある場合、インデックスは1、2、3と進みますが、3に対応する色はありません。そこで、項目数を表すcolors.size()と等しくなったら、0に戻します。
if color_index == colors.size():
color_index = 0==は2つの値が等しいかどうかを調べます。単一の=は値を設定します。
チャレンジ
簡単跳ね返るたびにロゴの色を次の色にします。
func next_color():と書きます。color_indexに1を加え、colors.size()と等しくなったら0に戻し、その後modulate = colors[color_index]を設定します。- 両方の
ifの中で、反転処理の下にnext_color()を呼び出します。
「プレイ」を押すと、跳ね返るたびにリスト内の次の色が表示されます。その後、「確認」を押します。
自分で試してみよう
extends Node2D
var velocity = Vector2(200, 90)
var colors = [Color(0.49, 0.95, 0.75), Color(1, 0.78, 0.34), Color(1, 0.42, 0.42)]
var color_index = 0
func _ready():
modulate = colors[0]
func _process(delta):
position += velocity * delta
if position.x > 570 or position.x < 70:
velocity.x = -velocity.x
if position.y > 330 or position.y < 30:
velocity.y = -velocity.y
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ノードとシーンのすべてのレッスン
自分で練習してみよう: Godotプレイグラウンド