【StoneStoryRPG/Stonescript】7.カスタム関数
カスタム関数は、スクリプト内の処理を分割整理することで、読みやすく・使いやすくするために使われます。
関数は、宣言されただけでは実行されず、後で関数が呼び出された時に実行されます。
例1 関数の宣言方法
関数は「func [関数名]()」の形で宣言し、次のインデントされた行から
関数の処理内容を記入します。
補足:関数名は基本的に大文字から始めるのが通例です。
//毎フレーム1ずつ増加するカウンターを作成する
//beginに設定されたキーが入力されると、カウンターの値は0にリセットされる
var count = 0
count++
>カウンター = @count@
func ResetCounter()
count = 0
?key=begin
ResetCounter()
【宣言】
func ResetCounter()
<実行> ↑
ResetCounter()
【呼び出し】
例2 返り値(戻り値)
関数は、処理を行うだけでなく、処理を行って得られた値(返り値)を別の処理で使用することができます。
関数が値を返すようにするためには、関数内の最後に「return [返したい値]」を使用します。returnに到達したら、この関数の処理は終了します。
返り値を他の処理で使用する場合は、「[関数名]()」を使用します。変数を使う時と同じように使えます。
//非ボスステージにかかった時間をボスステージで表示する
func NonBossDuration()
return totalTime - time
var duration
duration = NonBossDuration()
>かかった時間: @duration@
【宣言】
func NonBossDuration()
<実行> ↑ ↓ <値を返す>
NonBossDuration()
【呼び出し】
例3 引数
他の処理内で求めた値を関数内で使用したい場合は、関数を宣言する時に「func [関数名]([引数])」を使います。引数は複数使用することもできます。
関数を使用する際は、「func [関数名]([値])」の形で使用します。
//5から10の範囲内での乱数を生成する
func RandomRange(min, max)
?min >= max
return min
return min + rng % (max - min + 1)
var randomValue
randomValue = RandomRange(5, 10)
>乱数: @randomValue@
【宣言】
func RandomRange(min, max)
<値を代入して実行> ↑ ↓ <値を返す>
RandomRange(5, 10)
【呼び出し】
例4 this
関数内と関数外に同じ名前の変数が定義されている場合は、「this」をつけることで、関数外の変数を使用できます。
基本的に、別々の名前を付けている場合は、thisについて考える必要はありません。便宜上、変数名が同じになってしまう場合はthisの出番です。
var a = 1
func TestScope(a)
>スクリプト内でのa = @this.a@, 関数内でのa = @a@
TestScope(3)
補足1:関数のイメージを図にしてみたよ。
補足2:関数はゲームが閉じられるまでに216個以上呼び出されるとエラーを吐きます。
(次回更新送れるかも)
この記事が気に入ったらサポートをしてみませんか?