プログラミング言語なしでゲームを作る(Part5): GameMaker Studio2 の Drop and Drag 機能
こんにちは、Yoruです。
今回はプレイヤーを左右に移動させるプログラムを作ります。
前回の記事を読んでない方はこちら
GameMaker Studio2をまだ良く知らない方はこちら
プレイヤーを左右に動かす
① oBat上で Add Event > Key Down > Left 選択しイベントを作ります。
Key Down:ボタンを押している間イベントが発生します。今回の場合、左矢印ボタンを押している間。
② 検索ボックスで movement と入力し、Jump to Point をドラッグ。
③ x = -7(x軸上で左に移動させる), Relative にチェック
④ 同様に右方向(Right) のイベントを作ります。
x = 7, Relative にチェック
他に変数を使ったやり方があります。変数を使った方が後で変更したいときに便利なのでこっちの方法をこのゲームでは使用します。
① oBat > Add Event > Create を選択しイベントを作ります。
② 検索ボックスで Assign Varibale を検索し、ドラッグ。
③ Name = spd(変数の名前をつける), Value = 7
④ Jump to Point の Left, Right の 7 を spd に代える。
Run すると横の壁をスレ抜けるので「if文」で調整します。if文を使って条件を指定し、条件を満たす場合のみプログラムが実行されるようにします。
今回の場合、オブジェクトが壁に到達したら、それ以上進めない条件をつけます。
まずは左にすり抜けない条件を設定。
① oBat > Key Down > Left > if Variable を検索し、ドラッグ。
object の左端が(Variable)、壁(Value)より、右側(is)である場合のみ実行する条件を作ります。
※ Variable = x - sprite_xoffset
Value = 0 (roomのx軸の左端は 0)
is = Greater(より大きい)
※ oBrickのx軸の原点が中心にあるので Variable に x だけ入力すると、オブジェクトが半分すり抜けてしまうので、sprite_xoffset(オブジェクトの原点から端の距離)を使って調整します。
右にも同じ条件をつけます。
oBat > Key Down > RIght > if Variable
Variable = x + sprite_xoffset
Value = room_width
is = Less
これでプレイヤー(oBat)が左右の壁をすり抜けずに移動できるようになりました。
次の記事でボールがスタート時ランダムに発射されるイベントを作ります。