第5章 初めてのプログラミング
Godotでは4つの言語に対応していますが今回はGDScriptを用いてプログラミングをしていこうと思います。
理由としてはGDScriptが公式ドキュメントで最も充実しているように感じたため読者の皆様が自分一人でも調べることができるようにと考えたためです。
1.プログラムとは
2.ノードにスクリプトをアタッチする
3.プログラミングの第一歩「Hello World」
4.「func _ready()」の正体
プログラムとは
普段よく聞くプログラムという言葉。これは私たちがコンピューターが実行できる処理のことを言います。実行、記憶、判断の3つがコンピューターの主な役割ですが、そのすべてが
コンピューターは私たちのように柔軟な自由言語を扱うことができないためプログラミング言語を用いてコンピューターに命令します。
おそらく、まだイメージができない人が多いと思うので簡単な例を使って説明していきます。(架空のプログラミング言語を使います)
表示しろ こんにちは
意味は画面に「こんにちは」と表示しろという意味です。では次はどうでしょうか?
表示しろ こんばんは
察しがいい人は気づくかもしれないですが、意味は画面に「こんばんは」と表示しろということになります。
では最後にもう一つ。
表示しろ おはよう
表示しろ こんにちは
表示しろ こんばんは
意味は画面に「おはよう」と表示して、そのあとに「こんにちは」と表示して、そのあとに「こんばんは」と表示しろということになります。
実際のプログラムもかなり単純です。
print( "おはよう" )
print( "こんにちは" )
print( "こんばんは" )
表示しろという単語がprintに置き換わったぐらいでほぼほぼ違いがありません。
プログラムとは非常に単純な文法の集まりだと考えていただければ問題ありません。
ノードにスクリプトをアタッチする
「スクリプト?アタッチ?」となる方もいらっしゃると思います。Godotではプログラムが記載されているファイルをスクリプトと呼び、それをノードに割り当てることをアタッチと言います。
それではさっそく、スクリプトをアタッチしていきましょう。
以前に作ったプロジェクトを開いてください。そして「Main.tscn」シーンを開いてください。
シーンドックでNode2Dを選択した状態でシーンドックの右上にある巻き物をクリックしてください。
以下のような画面が出たらスクリプトを作成することができます。作成ボタンを押すとスクリプトが作成されNode2Dにアタッチされます。
Node2Dの横に巻き物のようなアイコンが表示されていれば無事にスクリプトがアタッチされています。
それよりも気になるのは画面の真ん中に出てきたワチャワチャしている文章だと思います。これはソースコードです。人間がわかるように作られたプログラムといったところです。
この真ん中のところに新しくプログラムを書いていきます。
プログラミングの第一歩
まずは真ん中に出てきたソースコードを見てみましょう。
extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
#func _process(delta):
# pass
ここでGodotのソースコードを見るとわかりますが、「#」が付いている行に灰色になっている場所があります。これはコメントと呼ばれる場所でありコンピューターの実行結果に関係ない、メモのような役割を持っています。
いったんコメントをすべて消してみましょう
extends Node2D
func _ready():
pass
非常にシンプルな形になりましたね。ここで重要なのが「func _ready()」の部分です。プログラムはこの行から始まります。つまりここから書き始めるとあなたが書いた命令をコンピューターが実行するということです。
さっそく命令を書いてみましょう。以下の命令を追加してみてください。
extends Node2D
func _ready():
print("Hello")
ここで気を付けてほしいところはprintの前の空白は半角で「Tabキー」を使うことです。スペースキーで空白を入れるとエラーとなるので注意してください。
エラーの例
また、「"」←こちらの入力は「Shift + 2」です。「"」も忘れずに入力してください。入力を忘れるとエラーとなります。
エラーの例2
いよいよ人生初のプログラム実行をしてみましょう。第3章でやったテストプレイボタンから「シーンの実行」をしてください。
そうすると・・・ゲーム画面は変わりないですね。
しかしエディタの下パネルを見ると。
見事にHelloと出力されています。では次はどうなるでしょうか。
extends Node2D
func _ready():
print("Hello")
print("I love Yape.")
print("Bye.")
ソースコードを入力したら実行してみましょう。
そうすると下パネルに「こんにちは」「私はやーぺが好き。」「じゃあね」というちょっと危ない人っぽいプログラムを作ることができました。
ふざけているわけではなく、この順番を確認してみてください。
extends Node2D
func _ready():
print("Hello")
print("I love Yape.")
print("Bye.")
ソースコードが「Hello」「I love Yape」「Bye」の順。
出力も「Hello」「I love Yape」「Bye」の順。
比べるとわかる通りソースコードが上から順番に実行されていることがわかります。
そう、プログラムは基本的に上から順番に実行されているのです。
何度か並べて実験しても基本的に上から順番に実行されているでしょう。
「func _ready()」の正体
「それはわかったけど func _ready()って結局なんなの?」と思われる方もいるかもしれません。func _ready()はノードが読み込まれた段階で実行される部分と覚えていただいて大丈夫です。
この話をすると新しいことを覚えすぎてややこしくなると思うので今回は
・プログラムは非常に単純な文法で作られている
・GDScriptはノードにアタッチしてゲーム実行すると起動する
・プログラムは上から下へと実行される
ことを覚えていただければ幸いです。
次
前
この記事が気に入ったらサポートをしてみませんか?