衝突判定処理(コリジョン)を入れない前提で、単純にオブジェクトの位置を現在の位置から別の位置へ移動させるだけなら オブジェクト・インスタンスの Built-In Functions & Variables ( Built-In 関数と変数)を利用するだけで簡単に実現できます。

衝突判定を入れる場合、Box2D (Physics =物理動作) を使って簡単に重力場を再現する方法もあります。しかし注意点として、Box2D は衝突判定などのロジックも含め全くの別系統で排他処理が行われるから、通常動作と物理動作 (Box2D) は混じらないという点。

物理動作には専用の関数群が用意されていて、Box2D を適用したオブジェクトには通常動作の関数群からの操作ができなくなります。

関連:物理動作 (Box2D) と通常動作

オブジェクトの Built-In Functions & Variables を使ってオブジェクトの座標を変更する手順は非常に簡単です。実際に移動させる前に、Built-In で予約された「識別子」について知っておいてください。

Built-In とは?

Built-In はオブジェクトを作った時点で最初から用意されている関数及び変数群で、Built-In 用は識別子(名前)に予約が入っているから、ユーザ定義から Built-In と同じ識別子は使えないようになっています。

Built-In をスコープの範囲で区別すると二種類あって、オブジェクト・インスタンスの持つことができる Built-In Variables (変数)、グローバルとしてどこからでもアクセスできるグローバル変数的な Built-In および関数群です。

例えばオブジェクトの x および y 座標はオブジェクト・インスタンスの Built-In Variables として xy が予約済みなので、この名前をユーザ定義の変数には利用できません。

    var x, y;

Built-In とかぶるため上記ユーザ定義の変数名は無効です。

    GM_Studio_14_built-in_variables_x_y_error
参考 (YoYoGames):Movement

参考 (YoYoGames):Movement and Collisions

参考 (YoYoGames):Collision Checking

次のページへ

Leave a Reply

Your email address will not be published. Required fields are marked *