SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Godot Engine 2Dゲーム開発入門

Godot Engineのゲーム開発はじめの一歩──インストールしてプロジェクトを動かそう!

Godot Engine 2Dゲーム開発入門 第1回

  • X ポスト
  • このエントリーをはてなブックマークに追加

6.スクリプトを書いてみよう2

アタッチされていないスクリプト

 今度は「ファイルシステム」ドックを右クリックして「新規スクリプト」を選択します。

新規スクリプト
新規スクリプト

 「スクリプト作成」ダイアログが表示されます。

「スクリプト作成」ダイアログ
「スクリプト作成」ダイアログ

 パスのファイル名をtest.gdに変更して「作成」ボタンを押します。「ファイルシステム」にtest.gdが作成されますのでダブルクリックして開きます。

test.gd
test.gd

 extends Nodeと書いてあり、ノードの基底クラスを継承しています。このプログラムを次のように書き換えます。

extends Node


func _init():
	print("Hello, world! 2")
test.gd:_init関数
test.gd:_init関数

 そして、「Ctrl+S」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。先ほどと同じように「test (DEBUG)」というウィンドウが表示されますので、このウィンドウを閉じます。

 中央のビューの下に「出力」パネルが開き、「Hello, world!」と表示されているのが分かります。

 「Hello, world! 2」は表示されていません。test.gdはアタッチしていないので呼び出されません。

実行結果
実行結果

別のスクリプトの読み込み

 続いてsprite_2d.gdを次のように書き換えます。

extends Sprite2D

const TEST = preload("res://test.gd")


func _init():
	print("Hello, world!")
	TEST.new()

 preload関数を使いtest.gdTESTクラスとして読み込んだあと、TEST.new()でインスタンス化します。

sprite_2d.gd:test.gdをインスタンス化
sprite_2d.gd:test.gdをインスタンス化

 「Ctrl+S」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。先ほどと同じように「test(DEBUG)」というウィンドウが表示されますので、このウィンドウを閉じます。

 中央のビューの下に「出力」のパネルが開き、「Hello, world!」「Hello, world! 2」と表示されているのが分かります。

 test.gdが読み込まれてインスタンス化されたので、_init関数の中身が実行されました。

test.gdの_init関数が実行
test.gdの_init関数が実行

別のスクリプトの関数を利用

 さらに、test.gdsprite_2d.gdを次のように書き換えます。

test.gd
extends Node


func _init():
	print("Hello, world! 2")


func my_func():
	print("my_func")
sprite_2d.gd
extends Sprite2D

const TEST = preload("res://test.gd")


func _init():
	print("Hello, world!")
	var test = TEST.new()
	test.my_func()

 「Ctrl+S」で変更を保存したあと、右上の「▶」(プロジェクトの実行)をクリックします。先ほどと同じように「test (DEBUG)」というウィンドウが表示されますので、このウィンドウを閉じます。

 中央のビューの下に「出力」のパネルが開き、「Hello, world!」「Hello, world! 2」「my_func」と表示されているのが分かります。test.gdのインスタンスを変数testに代入して、test.gdmy_func関数を呼び出しました。

my_func
my_func

 GDScriptではPythonの命名規則のように、関数名は小文字と_を利用したスネークケースで書きます。またPythonとは異なり、変数はvarを使って定義します。

 GDScriptの雰囲気がだいぶ分かってきたと思います。

次のページ
7.スクリプトを書いてみよう3

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/21360 2025/04/28 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング