プログラムを動かしてみよう

こんにちは、インターン生の鶴田です。
GameMaker Studio(以下GMS)について紹介していく記事、第6回テーマは「キーボードで動かせるオブジェクトを作ろう」です。
前回の第5回ではボールが一定のパターンで動き回るプログラムを組みましたが、今回はプレイヤーの操作に合わせて動くプログラムを作っていきます。

・右に動く(?)キャラ
それでは早速やっていきましょう。
今回はこんな感じのオブジェクトとスプライトを作ってみました。

私は絵が描けないのでヘンテコなキャラになってしまいましたが、スプライトには好きな絵や画像を使ってももちろん大丈夫です。(あまり大きい画像はおすすめしません)
作ったオブジェクトは早速ルームに置いておきましょう。

では作ったオブジェクトにプログラムを組み込んでみましょう。
前回の要領で、キャラオブジェクトの編集画面に行きEventsのAdd Eventボタンをクリック。
イベント一覧の中から、「Key Pressed」→「Right」 を選びます。

画像のようにイベントが追加されていればOKです。

このイベントはキーボードの右矢印キー(→キー)を押した時のイベントです。
この中にキャラが右に動く処理を作れば、「右にキーを入れると右に動く」という動きができそうですね。やってみましょう。
今回のような操作に合わせてキャラが動く処理には、Movementカテゴリの「Jump To Point」ブロックがおすすめです。

XとYという欄がありますが、Xの欄は横軸(左右)の移動、Yの欄は縦軸(上下)の移動に使います。
今回は右に動かしたいので、Xの欄にだけ10と入れましょう。(横のRelativeにチェックを入れるのを忘れずに!)

ここまでできたら、一度Runしてみましょう。

ここまでできたら、一度Runしてみましょう。

…右を押すとちょっと動くけど、すぐ止まっちゃって連打しないと動かない!となりませんでしたか?
実は、今説明したとおりのプログラムだとそういう動きになってしまいます。
仮にアクションゲームを作るなら、右を押している間は右に動き続けるようになっていたほうが絶対にいいですよね。
次の項でどうすればいいかを説明します。

・イベントを変更する -KeyPressイベントとKeyDownイベント-
一度テスト画面を閉じて、キャラのイベント編集に戻りましょう。
前の項で「KeyPressイベントはキーを押した時のイベント」と説明しましたが、実は正確には「キーを押した瞬間だけ発生するイベント」なんです。
そのため、右を押している間は右に動き続けるプログラムを作りたい場合はこれとは別のイベントを使わないといけません。

というわけで、KeyPressイベントを別のイベントに変えてみましょう。一度イベントを消して作り直して~でもいいんですが、もっと早い方法があります。
イベント一覧で別のイベントに変えたい項目(今回はKey Downイベント)を右クリック→Change Eventをクリック。
Change Eventを選ぶとイベントを作るときと同じように一覧が出てくるので、「Key Down」→「Right」を選びましょう。

これを使うと中身のプログラムを残したままイベントの条件を変えられます。

イベントが画像のように変わっていて、イベント内に右に動くプログラムが残っていれば成功です。もう一度Runしてみましょう。
うまくいっていれば、キャラが右キーを押している間なめらかに動いてくれるはずです!

・キャラを回転させてみよう
ついでにキャラが動きながらぐるぐる回転するようにしてみましょう。
今作ったKey Downイベントのプログラム画面に移って、キャラを回転させるための処理を探します。
回転処理が楽にできるのは、Instancesカテゴリ(ブロック一覧の上の方にあります)の「Set Instance Rotation」ブロック。
見つけたらドラッグしてプログラムに追加しましょう(今回は順番は関係ないので移動処理のブロックの上でも下でもOKです)

Angleの横に-10と入れ、忘れずにRelativeにチェック。Runしてみましょう。
動きに合わせてコロコロ転がっているような感じになれば成功です!

・左にも動かそう -イベントのコピー-
いい加減右にばっかり動かすのも飽きてきた!ということで左にも動けるようにしてみます。
でも、右キーのイベントと同じように左キーのイベントを作って、プログラムを組んで……とするのはちょっと面倒です。
そこで、既にあるイベントを中のプログラムごとコピーして複製する方法があります。
イベントを変更したときと同じ要領で、コピーしたいイベント(今回はKey Downイベント)を右クリック→Duplicate Eventをクリック。
Change Eventの時のようにイベントの一覧が出るので、複製した後のイベントの条件を選びます。

今作りたいのは左矢印キー(←キー)を押している間のイベント。つまりKey Down→Leftです。

イベントが増えていれば成功です。

でも、このままRunすると右を押しても左を押してもキャラは右に動いてしまいます。(興味があったらRunしてみてください)
そこでちゃんと左を押したら左に動くようにプログラムを直します。
複製で増えたLeftイベントをダブルクリックで選択して、プログラムを編集します。編集画面の上のタブで今どのイベントのプログラムをいじっているのか確認するのがおすすめです。

画像2枚目のように、移動処理ブロックのX欄を-10に、回転処理ブロックの角度を10に書き換えてみましょう。
これで修正は完了です。実際にRunしてみて、右を押せば右に、左を押せば左にキャラが転がっていれば成功です!

・まとめ
今回はキーボード入力に反応するプログラムの作り方と、作ったイベントを変更したりコピーする方法を紹介しました。
ゲームを作る上でプレイヤーの操作に対応した動きは絶対に必要ですし、制作が進んでプログラムが複雑になるとイベント管理がとても重要です。
ここまでの内容がマスターできていれば、GMS初心者から初級者にステップアップしたといってもいいかもしれません。
次回はゲームの演出面でとても大事な「スプライト切り替え機能」を説明します。お楽しみに!

※記事中の画像はすべてGameMaker Studio 2のスクリーンショットを加工したものです。

興味を持たれた方はお気軽にお問い合わせください。

インターンシップへの申し込み・お問い合わせ先

インターンシップへの申し込み・お問い合わせ先
メールでのお問い合わせは、下記フォームに入力して送信してください。
ご氏名 (例)山田 太郎
メールアドレス 半角英数字:ご入力間違いのないようにご注意ください
メールアドレス(確認用) 半角英数字:ご入力間違いのないようにご注意ください
電話番号 (例)0354339211 ※ハイフン抜きで入力してください
題名
お問合わせ内容

アーカイブ

カテゴリー