ドキュメント / GameMakerJapan / 移動に関するアクション


ドキュメント/GameMakerJapan

移動に関するアクション

Start moving in a direction(指定された方向へ移動を開始させる)

インスタンスに、特定の方向への移動を開始させます。

  • 矢印が描かれたボタンを使って、方向を指定することができます。 中央のボタンを使うと、動きを止めることもできます。 複数のボタンを押すと、その中からランダムに方向が選ばれます。 例えば、モンスターを左右どちらかに動かすことができます。
  • 移動の速さを指定する必要もあります。 この速さはステップ毎に進むピクセル数(pixel/step)で与えられます。 デフォルト値は8です。負の値は指定しないほうがよいでしょう。

Set direction and speed of motion(速度を設定する)

このアクションも、インスタンスの速度を設定しますが、ここではより厳密な方向を指定できます。

  • 角度は度数法の値(0?360度)で指定します。 右方向が0度で、反時計回りに度数が増えます。例えば、90度は上方向を指します。
  • Relativeにチェックを入れると、指定された速度が現在の速度に加算されます。例えば、そのインスタンスが上方向に動いていたときに、左方向への速度を加算すると、左上方向へ動くことになります。

上級者向け補足

ランダムな方向を指定したい場合にはrandom(360)と入力してください。(こちらのページで解説していますが、random(x)は、0以上でxより小さい疑似乱数値を返します)

Move towards a point(特定の点に向かって移動を開始させる)

速度を設定する3番目のアクションです。 ここでは、特定の点とスピードを指定します。

  • インスタンスはその点へ向かい、与えられたスピードで移動を開始します。(※その位置で止まるというわけではありません) 例えば、宇宙船(spaceship)の位置へ向かって飛んでいくミサイルを作りたい場合は、点(spaceship.x, spaceship.y)を指定すればよいわけです(変数の扱い方についてはこちらのページにて解説します)。
  • Relativeにチェックを入れると、対象の点の座標は、そのインスタンスの位置を基準とした相対的な値となります。(※スピードは相対値にならないことに注意してください)

Set the horizontal speed(横方向の速さを設定)

インスタンスの速度は、縦方向と横方向の成分から成っています。

  • このアクションでは、横方向(水平方向)への速さを変更できます。 横方向の速さが正の値なら右へ進み、負の値なら左方向へ進みます。 縦方向の速さは変更されません。
  • Relativeにチェックを入れると、指定された値が横方向への速さに加算されます。

Set the vertical speed(縦方向の速さを設定)

同様に、このアクションでは、縦方向(鉛直下方向)への速さを変更できます。

  • 正の値なら下へ進み、負の値なら上方向へ進みます。

Set the gravity(重力を設定)

そのオブジェクトだけに作用する重力加速度を設定することができます。

  • 方向(0?360度)と、加速度量を指定します。 ステップ毎に、指定された速度が、インスタンスの現在の速度に加算されます。(加速度量の単位はpixel/step2) 通常、加速度量は0.01のような小さい値で十分です。
  • 方向には、しばしば270度(下方向)が指定されます。
  • Relativeにチェックを入れると、指定された重力加速度が、現在の重力加速度に加算されます。 ※実世界とは違い、各オブジェクトごとに、異なる方向に重力を働かせることができることに注意してください。

Reverse horizontal direction(横方向の動きを反転する)

インスタンスの横方向(水平方向)の動きを反転させます。 例えば、左右にある壁にぶつかったときなどに使用されます。

Reverse vertical direction(縦方向の動きを反転する)

インスタンスの縦方向(鉛直方向)の動きを反転させます。 例えば、上下にある壁にぶつかったときなどに使用されます。


Set the friction(摩擦を設定する)

摩擦はインスタンスが動くときの速さを遅くします。

  • ここでは、摩擦の量を指定します。
  • ステップ毎に、インスタンスの速さから指定された摩擦の量が引かれます。 (※ただし、摩擦量が速さより大きいか等しいときは速さが0になる)
  • 通常、0.01のような少ない値で十分です。

追記(上級者向け)

この摩擦は一見、空気抵抗のように振る舞いますが、ただそれらしく見えるだけです。 空気抵抗力は物体の速さにだいたい比例するので、例えば、 Createイベントのときに、[Set the gravity]で重力加速度の量を0.1とし、 Stepイベント毎に、[Set the friction]で摩擦を(speed/50)と設定したとすると、 このオブジェクトの速さは最終的に5.0(0.1x50)となります。

重力加速度量をg、摩擦をspeed/kとしたとすると、終端速度vは、v=g*k で表されます。

これを応用すれば、オブジェクトの最大速を制限することができます。

Jump to a given position(指定された点へジャンプする)

このアクションを使うと、インスタンスを特定の位置へ移動させることができます。

  • x,y座標を指定するだけで、インスタンスはその点の位置へ配置されます。
  • Relativeにチェックを入れると、指定された座標は、そのインスタンスの位置を基準とした相対的な値となります。 このアクションは、各ステップ毎に少しずつインスタンスの位置をずらす、連続的な移動によく使われます。

Jump to the start position(スタート地点へジャンプする)

このアクションは、インスタンスをそのインスタンスが生成された位置へ戻します。

Jump to a random position(ランダムな位置へジャンプする)

このアクションは、インスタンスをルーム内のランダムな位置に移動させます。 solidであるインスタンスが無い位置だけが選ばれます。

  • パラメータには、横方向のスナップ値(snap hor)と、縦方向のスナップ値(snap vert)を指定することができます。 正の値の場合、指定されたスナップ値の整数倍の座標がジャンプ先に選ばれます。 これは例えば、(もしあればのことですが)インスタンスがセルで整列されたゲームで使用することができます。

Snap to grid(グリッドにスナップ)

インスタンスをグリッドに吸着させます。

  • パラメータには、横方向のスナップ値(snap hor)と、縦方向のスナップ値(snap vert)を指定することができます。 つまり、[snap hor]x[snap vert]がグリッドのセルの大きさです。 インスタンスを確実にグリッドに沿って配置させるときなどに便利です。

Move to contact position(接触位置まで移動する)

インスタンスを指定された方向へ、オブジェクトと接触するまで移動させます。

  • すでに現在位置にコリジョンがあった場合は、インスタンスは移動されません。 その代わりに、そのインスタンスはコリジョンが発生する直前の位置に戻されます。
  • 移動の方向だけでなく、移動距離の最大値を指定することもできます。
  • 接触の対象を、全てのオブジェクトにするか、それともsolidだけにするかを設定できます。 通常、コリジョン・イベントの中で、確実にインスタンスを衝突の相手インスタンスと接触させるために使われます。

Bounce against objects(オブジェクトに対し跳ね返る)

このアクションをコリジョン・イベントに置くと、そのインスタンスは自然に衝突相手のオブジェクトに跳ね返ります。

  • precise:を[not precisely(厳密でない)]にすると、縦方向または横方向の壁だけが正しく扱われます。 [precisely(厳密な)]にすると、斜め/曲線状の壁も正しく扱われますが、処理が遅くなります。
  • 跳ね返りの対象を全てのオブジェクトにするか、それともsolidだけにするかを指定できます。
  • この跳ね返りは多くの特性に依存するため、完全に正確ではありませんが、多くの場合は、この効果で十分です。

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2024-03-07 2023-08-09 2023-05-21 2023-05-20 2023-05-04 2022-10-13 2022-07-21 2022-07-02 2022-04-06 2021-11-30 2021-11-26 2021-10-03 2021-09-23 2021-08-15 2021-06-02 2021-01-23 2021-01-21 2021-01-19 2021-01-18 2021-01-16 2021-01-15

人気の10件

今日の10件



これまでの訪問者: 6435
今日の訪問者: 1
昨日の訪問者: 1
閲覧者: 3