はじめに
算術演算子だけでは対応できないような複雑な値を計算する必要がゲームではよくあります。
たとえばイベントがプレイヤーの位置に影響するため、プレイヤーのX座標とY座標を動的に計算しなければならないというような状況です。
ここで『関数(Functions)』が登場します。
関数とは、数式エディタから呼び出すことのできる動的な(刻一刻と変化する)値です。
(数式エディタから呼び出さなくても覚えていれば直接入力もできます。)
(数式エディタから呼び出さなくても覚えていれば直接入力もできます。)
これが数式エディタを開くボタンです
関数を使うと、ゲームの最中に複雑な値を動的に計算することができます。
関数が計算した結果の値のことを「戻り値」と呼びます。
たとえばX関数とY関数は、オブジェクトの座標を計算して戻り値を返します。
また、関数は引数というパラメータを受け取る場合があります。
例えば、マウスカーソルのX座標を取得する関数の場合
CursorX(layer, camera)
()の中のLayerとCameraが引数です。
()の中のLayerとCameraが引数です。
CursorX("UI", 1)
この場合「マウスカーソルのX座標に、レイヤー"UI"、カメラ番号1を引数として渡す」となります。
オブジェクト関数
オブジェクトを追加すると、伴った関数を数式エディタから呼び出すことができます。
Object.X()
これはObjectのX座標を計算するX関数です。
ObjectのX座標が「100」であれば、この計算で「100」という戻り値を返します。
ObjectのX座標が「100」であれば、この計算で「100」という戻り値を返します。
SceneWindowWidth()
これはシーンウィンドウの幅を計算する関数です。
シーンウィンドウの幅が1280なら、この計算で「1280」という戻り値を返します。
例えば「Object.X()の値がSceneWindowWidth()の値以上」という条件のとき
「Object.X()の座標に0を代入」というアクションを実行したとします。
このイベントは、Objectが右に移動してウィンドウの右端まで到達したら、ウィンドウの左端にObjectの座標が変更されます。
オブジェクト関数は座標以外にさまざまな値を取得できます。
<例>
- Object.Angle() - オブジェクトの角度(度単位)を取得します。
- Object.Layer() - オブジェクトが配置されているレイヤーの名前を取得します。
- Object.ObjectName() - オブジェクトの名前を取得します。
ビヘイビア関数
ビヘイビアを追加すると、伴った関数を数式エディタから呼び出すことができます。<例>
- Tween::Progress(string) - 再生中のTweenの進捗具合を取得します。
- Object.Pathfinding::DestinationX() - 経路探索ビヘイビアのオブジェクトの目的地のX座標を取得します。
- Object.TopDownMovement::Speed() - トップダウンビヘイビアのオブジェクトの速度を取得します。
オブジェクトにもビヘイビアにも伴わない関数
上記以外の関数で、特定のオブジェクトやビヘイビアに伴いません。
<例>
<例>
- SceneWindowWidth() - シーンウィンドウの幅を返します。
- CursorX(layer name, number) - カーソルのX座標を返します。
- CameraCenterX(layer name, number) - カメラの中心のX座標を返します。
イベント関数
このほかに、イベント関数があります。
イベント関数とは、イベントをまとめて関数にし、自作の拡張機能として使えます。
そちらは次回、チュートリアルで実際にプロジェクトを作成しながら手順を追ってお届けします。
0 件のコメント:
コメントを投稿