【GMS2】プログラミング言語なしでゲームを作る(Part 8)

GameMakerStudio2

オブジェクトを反射させる

オブジェクトを反射させる(その1)

① oBall > Add Event > Collision > oBrick を選択。

② function Call を検索し、ドラッグ。

function Call: 好きなGMS の関数を呼べます。今回はブロック(oBrick)に当たったもの全てを跳ね返す move_bounce_all を使用します。

function = move_bounce_all, Argument = true

オブジェクトを反射させる(その2)

これでボールがブロックに当たると反射するようになりました。


次にプレイヤー(oBat)と反射できるようにします。ボールがプレイヤーに当たった時、両オブジェクトの原点を一直線に結んだ方角に戻っていくようにします。

オブジェクトを反射させる(その3)

① oBat > Add Event > Collision > oBat を選択。

② Set Point Direction を検索し、ドラッグ。

Set Point Direction: オブジェクトの方向を定めたポイントに向ける。

今回の場合、ボールの方向をプレイヤーに向けます。

x = other.x (oBat.xでも良い), y = other.y

③Set Direction Variable を検索し、ドラッグ。

Direction = 180, Relative にチェック

これで②で設定した角度を180度反転させ、ボールが逆方向に進んでいきます。


次に room の上左右にボールが反射するようにします。

オブジェクトを反射させる(その4)

まずは左の壁に反射させます。

② If Variable を検索し、ドラッグ。

Variable = bbox_left, is = less, Value = 0

③ Set Speed を検索し、ドラッグ。

Type = Horizontal, Speed = – hspeed(水平方向のスピードを反転させる)

④ 右の壁でも同様に設定する。

If Variable: Variable = bbox_left, is = Greater, Value = room_width

Set Speed: Type = Horizontal, Speed = – hspeed



⑤ 上の壁でも同様に設定をする。

If Variable: Variable = bbox_top, is = less, Value = 0

Set Speed: Type = Vertical, Speed = – vspeed(垂直方向のスピードを反転させる)

オブジェクトを反射させる(その5)

これでブロック、プレイヤー、上左右の壁にボールが反射するようになりました。

コメント

タイトルとURLをコピーしました