アステロイドを作ってみよう!パート①


うっほー!ゴッリラだよ!

なんと今日、、、おいら住んでいる地域の気温が-2度だったんだ(´・ω・`)
まったくもう!!寒すぎて冬眠するか悩んだよ(´・ω・`)

スケット
ゴリラが冬眠…?
ゴッリラ
( ゚ 3゚)~♪

そ、そんなことはさておき!
今日からさっそくGameMaker Studio(以下GMS)を使って、ゲームを作り始めていくよ!

初めてこのブログに来たんですけど、まずGameMakerなんちゃらってなに(。´・ω・)?
っていう人は、まずはこちらの記事をチェックしてみてね!!

いますぐゲーム開発を始めたい人へ

2018年10月27日

GameMakerStudioには、初心者の人向けに公式が用意した
素晴らしいチュートリアルがあるよ!

ただ、残念なことに日本語には対応していないんだ(´・ω・`)

動画自体は凄く役に立つ動画なのに、日本語に対応してないし使えない(´;ω;`)
っていうのはもったいないから、今回は僕がそのチュートリアルを翻訳しながら
解説していくよ!!

私英語できでるきんだよね(`・ω´・)  ( ゚∀゚)アハハという人は公式の動画をチェック!

 

それではさっそくはじめよう!今回はこんな感じのアステロイド風ゲームを作っていくよ!

ゴッリラ
先にダウンロードしておいてね!

1. プロジェクトを作ろう!

さっそくGMSを起動して、プロジェクトを作成しよう!

以下の手順で作成するよ!
NEWをクリック → GameMakerLanguageを選択 → ファイル名(今回はSpaceShooter)を入力

プロジェクトを作成したら、次にゲームのウィンドウサイズを変えよう!

画面右側のRoomをクリック → 左下のProperties内のWidth, Height 欄に500を入力

次に、ゲームのフレームレートを60fpsに設定しよう!
fpsはゲーム画面が毎秒更新される回数のことで、最近のゲームは大体60fpsになっているよ!

画面上の歯車マークをクリック → General内のGame frames per secondを60に変更

これでプロジェクトの設定は完了だよ!早速ゲームを作り始めよう!

2. プレイヤーを作ろう!

ゲームの設定もできたところで、さっそくゲームの主役となるプレイヤーを作成していこう!
今回、プレイヤーは隕石を破壊する宇宙船君だよ!

ゴッリラ
イカしたヤツだぜ!

・プレイヤーSpriteを読み込もう

プレイヤーオブジェクトの作成に取り込む前に、まずはSpriteを作成しよう!

画面右Resource内のSpritesを右クリック → Create Sprite

空のスプライトが作成されたら

①Spriteの名前を、後で呼び出しやすいように”s_player“に変更しよう!
名前は自分でわかるなら何でもいいよ!

②Importをクリックして、プレイヤーのSpriteを読み込もう(*’▽’)
自分で用意したスプライトを使いたい人はそれを選択してね!

③原点の位置をMiddle Centerに変更しよう!

GMSでは、原点の位置を起点に物体が動くんだ!
例えば原点が左上にあって物体を回転させると、こんな風に左上を起点に回転するよ!

原点が真ん中にある場合こうなるよ!

今回は原点が真ん中にある方が、自然に見えるよね!

原点は大体真ん中に設定するけど、Spriteによって変わってくるから注意してね!

・プレイヤーのオブジェクトを作成しよう

次に、プレイヤーのオブジェクトを作成しよう!

画面右Resource内のObjectsを右クリック → Create Objectを選択

空のオブジェクトが作成されたら

①オブジェクトの名前を変更しよう!
Spriteと同様に、自分がわかるならどんな名前でもいいよ!

②プレイヤーオブジェクトのSpriteを設定しよう!
…をクリックすると選択画面がでてくるので、さっき作成したプレイヤーSpriteを選ぼう!

③Add EventをクリックしてCreate Eventを選択しよう!

Create Eventではインスタンス変数を宣言するよ!

(インスタンス変数についてはこちらの記事をチェック)

【GMS】変数の宣言と種類を解説

2018年10月15日

さっそくmoveSpeed,rotateSpeedという変数を宣言しよう!

次に、もう一度Add EventをクリックしてStep Eventを追加しよう!
Step Eventに記述したプログラムは、毎フレーム実行されるんだ!

Event内に以下のプログラムを記述しよう!

GameMakerLanguage(以下GML)では、キーボード入力を受け取る時に、
keyboard_check(入力を受け取りたいキー)というメソッドを使うよ!

このメソッドでは、指定したキーが押されている間、1(True)の値を返すんだ!

つまり、一番最初のif文では右矢印キーが押されている間、組み込み変数のimage_angleから
5の値を引いているんだ!

image_angleは、プレイヤーの向きを管理している、組み込み変数の一つで
値が足されると左に、引かれると右に回転するよ!
つまりこの場合は、値が引かれているので右に回転するんだ!

2つめのif文は、左矢印キーが押されている間、image_angleに5を足してしているんだ!

つまり左矢印キーが押されている間、プレイヤーを左に回転させるっていうことだね!

3つめのif文では、上矢印キーが押されているかどうかを確認しているよ!

上矢印が押されている間は、motion_addというメソッドを使って、
プレイヤーを移動させているんだ!

飛行船が直進するとき、いきなりフルスピードで進まず、徐々に加速して進んでいくよね?
motion_addは、引数として受け取った”方向”と”速度”からプレイヤーの移動速度と方向を
計算、適応してくれるのがmotion_addメソッドなんだ!

ゴッリラ
このメソッドは、そんなに使わないから、よくわからなかったら
プレイヤーを動かしてくれる便利なメソッドくらいの認識で大丈夫だよ!
最後のmove_wrapメソッドは、プレイヤ-が画面外に出てしまった時に、
反対の画面にワープするように設定してくれるメソッドのことだよ!

move_wrapメソッドは3つの引数を受け取るんだ!

最初の二つは左右、上下に設定を適応するかどうかをTrue/Falseで、3つめは
どれだけ画面外に出たときに、ワープしてほしいのかを数値で受け取っているよ!

今回の場合はSpriteの横幅である、組み込み変数のimage_widthを値として渡しているんだ!

・プレイヤーをテストしてみよう!

これでプレイヤーの動きの処理は完成したよ!実際にゲームを実行して、確認してみよう!

ゲームを実行する前に、プレイヤーインスタンスを画面に配置しておこう!

画面右にあるResource内のRoomsをクリック →  room0を選択 → Objects内のo_playerを
room内にドラッグアンドドロップ

プレイヤーを画面に設置出来たら、ゲームを起動してテストしてみよう!

F5または、画面左上の”▷”マークをクリック

しばらくするとゲーム画面が出てくると思うよ!左右、上の矢印キーを押してプレイヤーが
自分の思い通りの動きをしているか確認してみてね!

画像の通り動いていたら成功だよ!

何かエラーが起きたら、コードを打ち間違えていないか確認してみてね!

質問があればいつでも@hellomanaki大歓迎だよ!

まとめ

今回は区切りが良いのでここまでにしておくよ!
このチュートリアル解説は長くなりそうなので、数パートに分けてやっていくね!

パート②はこちら!

アステロイドを作ってみよう!パート②

2018年11月7日

あと、ここで作業を中断する場合はプロジェクト保存を忘れないでね!

Control + S または 画面上のFileをクリック → Save Projectを選択してね!

YouTubeでも解説動画を投稿しているから、チェックしてみてね!(*’▽’)

ゴッリラ
それじゃあ、また次の記事で会えることを楽しみにしているよ!
10+

1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。

    ABOUTこの記事をかいた人

    このブログでは、初心者向けにGameMakerStudioを使ったゲームの作り方、プログラミングについての基礎知識を解説しているよ! "自分でゲームをつくってみたい!と思っている人は、是非読んでみてね!