外部ファイル
CoddyのGDScriptジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 1/65。
実際のプログラムは複数のファイルに分かれています。それぞれの.gdファイルはスクリプトで、あるスクリプトから別のスクリプトを使用できます。
スクリプトの先頭にclass_nameと記述すると、グローバル名を付けられます。すると、プロジェクト内のほかのすべてのスクリプトで、インポート行なしでその名前を直接使えます。
# greeter.gd
class_name Greeter
extends RefCounted
static func greet(player_name: String) -> String:
return "Hello, " + player_name + "!"static func を使うと、スクリプト名を通じて呼び出す関数を作れます。たとえば、Greeter.greet("Ada") のように呼び出します。extends RefCounted は、ノードではないスクリプトの基本となるクラスです。これについては次のレッスンで説明します。
# main.gd
extends Node
func _ready():
print(Greeter.greet("Ada")) # Hello, Ada!プログラムは引き続きmain.gdの_ready()から開始します。他のファイルは、main.gdが使用するものを定義するだけです。
Godotではファイル名にsnake_caseを使い、class_nameにはPascalCaseを使います。class_name Greeterはgreeter.gdに記述します。1つのファイルにつきクラスは1つにしましょう。
class_nameのないスクリプトは、preload()を使ってパスで読み込めます。
const Helpers = preload("res://helpers.gd")
func _ready():
print(Helpers.shout("hi")) # HI!チャレンジ
簡単greeter.gd に静的関数 greet を記述してください。プレイヤー名を受け取り、Hello, NAME! を返します。名前が空の場合は、Hello, friend! を返します。
提供されたコードは、後に続く名前の数を読み取り、それぞれについて Greeter.greet() を出力します。名前が Ada と空行の場合、次のように出力します。
Hello, Ada!
Hello, friend!コードは greeter.gd に記述します。main.gd には提供された入出力コードが含まれており、編集できません。
自分で試してみよう
extends Node
func _ready():
# 用意された入出力コード:そのままにしてください
var count := int(OS.read_string_from_stdin())
for i in count:
print(Greeter.greet(OS.read_string_from_stdin()))
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: GDScriptオンラインコンパイラ