条件文
条件文は、プログラムの実行フローを制御するために使用されます。もしコードが単に関数の終わりまで一行ずつ順番に実行されるだけであれば、その機能は非常に限られたものになってしまいます。
かつて(今も?)フローチャートがよく使われていました。これは、プログラムのフローを設計するためのもので、分岐ノードを使用してどの枝に進むかを決定します。典型的には、条件をテストして真か偽かを判定し、それに応じて分岐します。
ゲームでは、シンプルな真偽条件をテストしたり、より複雑な状態を扱ったりする可能性があります。
基本的な条件文は、
if
/ else
/ elif
の構文を使用します。インデントを利用して、if
構造の深さを定義します。以下は GDScript のコード例です:extends Node2D
func _ready(): var n = 6 # インライン 'if' 文 if n == 6: print("n は 6 に等しい") n = 4 # 通常の 'if' 文 if n == 4: print("n は 4 に等しい") # 'else/if' 文 if n == 6: print("n は 6 に等しい") else: print("n は 6 に等しくない") # 複雑なインデントの 'else/if' 文 if n == 6: print("n は 6 に等しい") else: if n < 6: print("n は 6 より小さい") else: print("n は 6 より大きい") n = 8 # 'elif' を使ったすっきりした 'else/if' 文 if n == 6: print("n は 6 に等しい") elif n < 6: print("n は 6 より小さい") else: print("n は 6 より大きい")
上記のコードでは、複数の
if
テストがある場合、インデントが煩雑になることがあります。そのため、elif
を使用するとコードがよりすっきりします。
Match 文
他のプログラミング言語では、
switch
文がよく使われます。これは、テスト値の複数のケースに基づいて条件分岐を行うためのものです。一方、GDScript では強力な代替手段である match
文が提供されています。
この構文は公式ドキュメントで非常にわかりやすく説明されていますので、詳細を知りたい場合は公式ドキュメントをご覧ください。
ゲームの状態は多くの状態のいずれかにある可能性が高く、
match
文を使えば、現在のゲームプレイを処理するために実行する必要のあるコードを決定できます。
三項条件式
三項条件式は、条件に基づいて変数に値を代入する便利な1行コードです。
var x = [value] if [expression] else [value]
コード例:
var paid = falsevar strength = 9.9 if paid else 1.0print("Strength = ", strength)
上記では、
paid
が false
の場合、strength
は 1.0
になります。条件が true
の場合は、9.9
になります。