プログラミングなしでゲームを作る(Part 8): GameMaker Studio2 の Drop and Drag 機能
こんにちは、Yoruです。
今回はついにボールを反射させるイベントを作ります!
前回の記事を読んでない方はこちら
GameMaker Studio2をまだ良く知らない方はこちら
オブジェクトを反射させる
① oBall > Add Event > Collision > oBrick を選択。
② function Call を検索し、ドラッグ。
function Call: 好きなGMS の関数を呼べます。今回はブロック(oBrick)に当たったもの全てを跳ね返す move_bounce_all を使用します。
function = move_bounce_all, Argument = true
これでボールがブロックに当たると反射するようになりました。
次にプレイヤー(oBat)と反射できるようにします。ボールがプレイヤーに当たった時、両オブジェクトの原点を一直線に結んだ方角に戻っていくようにします。
① 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 の上左右にボールが反射するようにします。
① oBall > Add Event > Other > Intersect Boundary を選択。
まずは左の壁に反射させます。
② 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(垂直方向のスピードを反転させる)
これでブロック、プレイヤー、上左右の壁にボールが反射するようになりました。
次の記事で、プレイヤーのライフポイントや得点などの文字をゲーム上に表示するイベントを作っていきます。