式
イベントに条件やアクションを追加するとき、フィールドによっては次のアイコンが隣に表示されているものがあります。
これらのアイコンは、そのフィールドに_式_を入力できることを示します。
式には複数の種類があります。
Note
関数を使って数値をテキストに、あるいはテキストを数値に変換できます。
Tip
GDevelop が標準で提供する関数式の一覧はexpressions referenceで確認できます。
数値
次のアイコンが隣に表示されているフィールドには、_数値_式を入力できます。
数値式は、数値を表します。
数値式の例を以下に示します。
0
-10
25.5
数学記号を使った加減乗除も可能です。
2+2
3-1
10*10
99/3
演算子の一覧は下記の通りです。
+
(加算)-
(減算)*
(乗算)/
(除算)
Tip
ひとつの式の中で複数の演算子を使えます。
テキスト
次のアイコンが隣に表示されているフィールドには、_テキスト_式を入力できます。
テキスト式はテキストの文字列を表します。
テキスト式の例を以下に示します。
"これはテキスト式です"
"GDevelop 最高!"
すべてのテキスト式は二重引用符でくくる必要があります。二重引用符を忘れると、GDevelop は値を関数とみなして処理しようとするので、ほとんどの場合エラーになるでしょう。
複数のテキストを連結するときは +
演算子を使います。たとえば "Hello" + "World"
は "HelloWorld"
になります。これ以外の演算子は、テキストに使えません。
関数
算術演算子だけでは対応できないような複雑な値を計算する必要が、ゲームではよくあります。たとえばイベントがプレイヤーの位置に影響するため、プレイヤーの X 座標と Y 座標を動的に計算しなければならないというような状況です。
ここで_関数_が登場します。
関数を使うと、ゲームの最中に複雑な値を動的に計算することができます。たとえば X
関数と Y
関数は、オブジェクトの座標を計算します。
オブジェクト名.X()
オブジェクト名.Y()
関数の使用は、関数呼び出しとしてもよく知られています。
Tip
表計算ソフトの数式やプログラミング言語の関数、数学の関数になじみがある場合は、GDevelop の関数も同じようなものと思ってかまいません。
構文
関数には 3 つの種類があります。
- オブジェクトに伴わない関数
- オブジェクトに伴う関数
- オブジェクトとビヘイビアに伴う関数
それぞれ構文が(少し)違います。
オブジェクトに伴わない関数
関数によってはオブジェクトやビヘイビアと無関係に存在するものがあります。この関数の呼び出しにはオブジェクトもビヘイビアも必要ありません。
以下に例を示します。
CurrentSceneName()
- 現在のシーンの名前を取得します。FileSystem::DesktopPath()
- 「デスクトップ」ディレクトリのパスを取得します。ToNumber(<number>)
- 文字列を数値に変換します。
Note
GDevelop は ::
構文を関数の名前空間に使います。たとえばファイルシステムに関連する関数はすべて、FileSystem::
が前につきます。これは関連性のある関数同士をまとめる役に立っています。::
構文は関数の動作には特に影響しません。
オブジェクトに伴う関数
関数にはオブジェクト経由で呼び出されるものがあります。これはつまり、関数が特定のオブジェクトのデータに影響を与えるか、そのデータを使って処理をしているということです。
以下に例を示します。
<object>.Angle()
- オブジェクトの角度(度単位)を取得します。<object>.Layer()
- オブジェクトが配置されているレイヤーの名前を取得します。<object>.ObjectName()
- オブジェクトの名前を取得します。
オブジェクトとビヘイビアに伴う関数
関数にはオブジェクトのビヘイビア経由で呼び出されるものがあります。これはつまり、その関数があるオブジェクトに添付された特定のビヘイビアのデータを読み書きするということです。
以下に例を示します。
<object>.Pathfinding::Speed()
<object>.Physics2::Friction()
<object>.PlatformerObject::Gravity()
引数
関数には_引数_(argument)を受け取るものがあります。(訳注:GDevelop ではふつうパラメーターと呼ばれますが、同じ意味です)引数は次のような値のことです。
- 関数に渡すことができる
- 関数の戻り値に影響を与える
たとえば ToString
関数は数値を文字列に変換しますが、外部から数値を渡さないと意味がありません。ここで渡す数値が引数です。次の例では数値 42
が引数です。
ToNumber(42)
MouseX
関数のように、複数の引数を受け取るものもあります。
MouseX(layer, camera)
関数が複数の引数を受け取る場合は、引数のあいだをカンマで区切り、決められた順番で渡す必要があります。
戻り値
関数が計算した結果の値のことを_戻り値_と呼び、関数の呼び出し元に値を返却することを戻り値_を返す_といいます。これは関数の出力部に相当します。たとえばオブジェクトの X 座標が 42
であれば、ObjectName.X()
関数は 42
を返します。
関数は数値か文字列を返すことができます。戻り値の型は関数がどのフィールドで使えるかに影響します。たとえば ToString
関数は文字列を返すため数値用のフィールドには使えませんし、ToNumber
関数は数値を返すので文字列用のフィールドには使えません。