[GMS] 関数の種類と使い方を解説


うっほー!ゴッリラだよ!

最近パソコンと睨めっこすることが多くなってきたから、目の疲れをとるために、
電熱式ホットアイマスクを買ってみたんだ!

しばらく使ってみてレビュー記事を書いてみるね!

ゴッリラ
あったかーい(*‘ω‘*)

さて!世間話はこの辺にして、さっそく本題に入るよ!

今回は、GameMakerStudio(以下GMS)を使い、ゲームを作っていく中で
お世話になる、関数(ファンクション)について話していくよ!

初めてこのブログに来たんですけど、GameMakerなんちゃらってなに(。´・ω・)?
っていう人は、まずはこちらの記事をチェックしてみてね!!

いますぐゲーム開発を始めたい人へ

2018年10月27日
ゴッリラ
それじゃあ早速始めよう!

1. そもそも関数とは?

一般的な関数の定義は、以下のようなものだよ!

“関数には、入力と出力があり、その出力は入力に関連したものである”

うーん (。-ω´-) ちょっと意味がハッキリしないよね?

GMSにおいて関数は、ゲーム内の何らかの処理をするプログラム内で呼び出される、
小さなプログラムのことだよ!

関数を呼び出す時に、引数と呼ばれる値が必要になるものもあれば、そうでないものもあるんだ!

※引数・・・プログラムや関数に渡す値

関数を自動販売機に例えるなら、こんな感じになるよ!

GameMakerLanguageには、あらかじめ沢山の便利な関数が用意されていて、
関数を自分で宣言することもできるよ!

実際に例を見ながら、理解していこう!

2. 関数の種類

関数についての理解を深めるために、いくつか関数が呼び出されている例を見ていこう!
例に使われている関数は、どれもGMSによってあらかじめ用意されたものを使用しているよ!

関数は、こんな風に呼び出すことができるんだ!

関数名("引数");
例 show_debug_message("これは例だよ");

ゴッリラ
引数がない時()内は空白にするよ!
必要な引数の数は、関数によってそれぞれ違うんだ!

 

・引数を必要としない関数

まずは、引数を必要としない関数の例を見ていこう!

instance_destory()という関数は、呼び出された時にそのインスタンスを削除してくれるんだ!

例えば、hpが0になったプレイヤーをゲーム上から削除したいときに使うよ!

room_goto_next()という関数は、呼び出されたときゲーム画面を次に進めてくれるんだ!

例えば、タイトル画面のスタートボタンがクリックされた時、ゲーム画面に進むのに使うんだ!

ゴッリラ
どちらも、あらかじめGMSによって用意された
関数で、引数を必要としないんだ!

・引数を必要とする関数

次に、引数を必要とする関数の例を見ていこう!

maxという関数は、受け取った引数の中から、一番値の大きいものを返してくれるんだ!
この例では50が返されるよ!maxは、いくつでも引数として受け取ることができるよ!

こんな風に、関数によって返された値を変数に代入することもできるよ!

二つ目のinstance_create_layerという関数は、引数として座標、レイヤー名、オブジェクトを
受け取って、指定したレイヤーの座標にオブジェクトのインスタンスを配置してくれるんだ!

ゴッリラ
どちらも、引数を必要とする関数の例だよ!
引数無しで呼び出そうとすると、エラーが起きるから注意してね

・特殊な関数

最後に、特殊な関数を見ていこう!

さっき紹介したinstance_destro()関数は、ほかのメソッドとは違って、引数として
渡す値によって処理が変わってくるんだ!

  1. <引数を渡さずに呼び出す>
    関数を呼び出したインスタンスを削除する
  2. <オブジェクト名を引数として呼び出す>
    ゲーム上に存在する、指定したオブジェクトのインスタンスを全て削除するよ!
  3. <オブジェクトのインスタンスidを引数として呼び出す>
    そのidを持った、インスタンスのみを削除するよ!

instance_destroy()のように、引数として渡した値のタイプによって
処理が変わる関数は、ほかにもいくつかあるよ!呼び出すときは注意してね!

3. 変数の宣言方法

関数についての理解を深めたところで、実際に関数を宣言してみよう!

まずは、GMSを開いてスクリプトと呼ばれるものを作成してね!

画面右Resources内のScriptsを右クリック → Create Scriptを選択

作成したScriptを選択した状態で、F2キーを押すと名前を変更できるよ!
(return_smallerと名付けよう)

今回は、引数として受け取った二つの値を比べて、小さい方を返す処理を
してくれる関数を宣言してみよう!

 

大丈夫!一文づつ説明するから安心してね!(・ω・´)

最初の///@argumentは、引数の数と内容を表示させるために使うんだ!
これが無くてもエラーは起きないけど、合ったほうがわかりやすいから、
毎回書くことをお勧めするよ!

ここでは、ローカル変数に引数として受け取った値を代入しているんだ!
プログラミングでは0から数えるので、一つ目の引数はargument0になるよ!

このIF文は、受け取った2つの引数の値を比べて、低い方を返すように処理しているよ!
IF文のことは既に別の記事で紹介しているので、わからない人は是非読んでみてね!

【GMS】 if文を使った条件分岐を解説

2018年10月23日
ゴッリラ
returnされた時点で、関数は終了するので、
何かほかにしたい処理があれば、returnの前に書いておこう!

実際に、このプログラムを実行してみよう!

オブジェクトを作成して、Create Event内でreturn_smaller関数を呼び出してみよう!

【GMS】オブジェクト、インスタンスとは?

2018年10月20日

show_debug_messageは、引数として渡した値をコンソールに出力してくれる関数だよ!
ここでは、return_smallerによって返された値を引数として渡しているんだ!

つまりreturn_smallerがしっかり働いていたら、小さい方の値である1が表示されるはずだよ!

オブジェクトをroomに配置して、ゲームを実行してみよう!

画像のように、小さい方の値が出力されていれば成功だよ!

まとめ

お疲れ様!これで関数についての説明はおしまいだよ!

何度も繰り返す処理を関数として宣言しておくことで、作業を効率化できるから、
関数はしっかり理解しておこう!GMSが用意してくれている関数は、
便利なものが多いからチェックしておくことをお勧めするよ!

この記事を通して、少しでも皆が新しいことを学ぶことができたら嬉しいな(*’▽’)
質問があればいつでも@hellomanakiで待ってるよ!

また次の記事で会えることを楽しみにしているよ!

ゴッリラ
ばいばーいヾ(・◇・)ノ
2+

コメントを残す

メールアドレスが公開されることはありません。

ABOUTこの記事をかいた人

このブログでは、初心者向けにGameMakerStudioを使ったゲームの作り方、プログラミングについての基礎知識を解説しているよ! "自分でゲームをつくってみたい!と思っている人は、是非読んでみてね!