俺に解るように説明する "Godot Engine 3.x" 入門+

ゲームエンジン Godot Engine に関すること。入門とか使い方とかチュートリアルとか、あれとかこれとか。日本語解説。

"Godot Engine" GDScript 2 「extends の右横には何て書く?」 ... ってしようと思ったら事件発生!

一応、GDScript のドキュメントを見てみた。"extends" は keyword(キーワード)の1つで、2通りの使い方があるようだ。ちなみにキーワードとは、Godot が既に使い方を決めている語の事で、2.1.x 系では25コあるようだ。そしてこれらのキーワードは、スクリプトエディター上で黄色に塗られるようだ。

f:id:ore2wakaru:20170813182228p:plain

公式のドキュメントページはココ

GDScript — Godot Engine 2.1 documentation

keyword の欄から、"extends" の所だけ抜き出すとこんな感じ。

Keyword
(キーワード)
Description
(どんな事をするのかの説明)
extends Defines what class to extend with the current class.
「現在のクラスでどのクラスを拡張するかを定義します。」
Also tests whether a variable extends a given class.
「また、変数が与えられたクラスを拡張するかどうかをテストします。」

うむ。全然わからん。何らかのプログラミング言語経験者には分かるようになっているのだろうか。

ということで実験。

削除

そもそも “extends XXXXX” は必要か? まず、この1行を削除するとどうなるのか実験。

普通にシーンのルートである「Node」ノードにスクリプトを追加する。「Node」ノードを選択して、スクリプト追加ボタンを押して、[作成]。もちろん、"Inherits" は “Node” のまま。これは朝飯前。

f:id:ore2wakaru:20170813190913p:plain

で、普通に出てきた1行目を削除してシーンの再生を行う。

f:id:ore2wakaru:20170813193503p:plain

エラー。

一応、この行は必要だという事が分かった。問題は、右側にどんな表記が必要か? ということに絞られた訳だ。ただ、いい加減な文字列ではダメだという事は、前回やって分かっている。

注意&便利

ここで、ちょっと注意なのは、エラーが出ても、まだシーンは再生中(一時停止の状態)だということだ。エラー表示が優先されるのか、エディターを最大表示にしていると、シーンの画面は裏にまわって見えない。

f:id:ore2wakaru:20170813203229p:plain

右上ツールのシーン [再生] ボタンが、[再再生](?)のアイコンに変化している。(一時停止のボタンも色が付いているので、有効になっている事が分かる)

[停止] ボタンを押して停止してもいいのだが、なんとなんと便利なことに、このままスクリプトの修正が出来る。正しくスクリプトを修正して、[再再生] ボタンを押せば、でシーンが前面に出てくる。(修正後、一時停止ボタンを押してもOK)

こんな所もゲームエンジンの凄いところだ。

問題発生

色々確かめようと、スクリプトを付けたり外したり、修正したりしていると、ファイル名が無いスクリプトが出来てしまうことがある。(写真の左コラム、ファイル名が空っぽ)

f:id:ore2wakaru:20170813233421p:plain

どうもこれは、俺の場合、既に存在するスクリプトファイルを [スクリプト追加] ボタンで追加しようとすると発生する感じだ。だが、ボタンのヒントにもあるように、"existing script"(存在するスクリプト)を貼り付けることもできるハズなのだが。(出来ないのは俺だけなのか?)

f:id:ore2wakaru:20170813234036p:plain

スクリプトエディターのメニューから [File] > [閉じる] でうまく消すことは出来るようだが、、、

f:id:ore2wakaru:20170813234747p:plain

、、、やりたいことは、そうじゃなくて、ノードにスクリプトを追加したいのだよ。

解決

あれこれやってみて(こんなことに半日はまってしまった)、結局は解決したのだが、俺・・・疲れたんだ・・・なんだかとても眠いんだ・・・Godot。ということで、次回。