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


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

最近チョコレートが美味しすぎて、手がとまらないよ(゚д゚)ウマ~
鼻血による出血多量には気を付けるね…(´-ω-)

スケット
□ヾ(・ω・。) フキフキ

さて!今回は、アステロイド風ゲームの続きを作っていくよ!

まだパート1やってないよ!っていう人は、先にそっちを終わらせてから戻ってきてね!

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

2018年10月27日

画像素材をまだダウンロードしていない人はこちらから!

3. 隕石を作成しよう!

プレイヤーの次は、今回のゲームの敵になる隕石を作成していこう!
今回は3種類の隕石を用意したよ!

・隕石Spriteを読み込もう

プレイヤーのSpriteを読み込んだ時と同じ手順で、隕石のSpriteを読み込もう!
今回、隕石のSpriteは3つ用意されているから、3つSpriteを作成してね!

画面右Resource内のSpritesを右クリック → Create Sprite → Importで画像を読み込み

名前を変更するのと、原点をMiddle Centerに変更するのを忘れないでね!

・隕石オブジェクトを作成しよう!

次に、隕石オブジェクトを作成しよう!

サイズが違うだけの隕石オブジェクトを3つ作るのは効率が悪いから、
今回は一つだけオブジェクトを作成して、プログラムでSpriteを変更するようにするよ!

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

①オブジェクトの名前を変更しよう!
自分で分かるならどんな名前でもいいよ!(おすすめはo_asteroid)

②プレイヤーオブジェクトのSpriteを設定しよう!
…をクリックすると選択画面がでてくるので、小惑星のSpriteを選択しよう

・Create Eventを追加しよう

③Add Eventをクリックして、Create Eventを追加しよう!

ゴッリラ
おさらい!Create Eventはインスタンスが作成された時、
最初に呼び出されるイベントの事だよ!

さっそく後で使うことになる、インスタンス変数を宣言していこう!

少しややこしく見えるかもしれないけど、一行ずつ説明するから!

ここではchoose関数を使うことで、隕石インスタンスのSpriteを3つの中から
ランダムに選択するようにしているんだ!

sprite_indexは、組み込み変数の1つでSpriteを値として保持するよ!

choose関数は、渡された選択肢の中から1つを戻り値として返すんだ!

この行では、進行方向を管理する組み込み変数directionの値をランダムに設定しているんだ!

irandom_range(値1,値2)は、値1~値2の範囲からランダムな値を戻り値として返すよ!

ここでは、隕石Spriteの角度をランダムな方向に設定しているよ!

こうすることで、隕石が全て同じように見えないようにしているんだ!

最後は、隕石が移動する速度を設定しているんだ!

インスタンスはdirectionの方向に、毎フレームspeedの値進むよ!

つまり、一つ一つの隕石が全てランダムな進行方向、向きをもって生成されるということだね!

・Step Eventを追加しよう!

④Add Eventをクリックして、Step Eventを追加しよう!
Step Event内に以下のコードを記述してね!

move_wrap関数は、パート①でも紹介したようにインスタンスが画面外に飛び出した時、
反対画面から登場させてくれるよ!

ここでは、spriteの角度を管理するimage_angleに毎フレーム1の値を足しているよ!
つまり1秒間にspriteを60度回転させているということだよ!

・隕石をテストしてみよう!

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

まずは、隕石インスタンスを画面に配置してね!

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

Spriteがランダムに割り当てられていることを確認したいので、5つくらい置いてみてね!
配置したいオブジェクトを選択したい状態で、altキーを長押しすることで連続で配置できるよ!

隕石を画面に配置出来たら、ゲームを実行してみよう!

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

ゴッリラ
雰囲気でてきたね(*’▽’)

画像のように動いていたら成功だよ!

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

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

まとめ

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

2018年11月19日

区切りが良いので、今回はここまでにしておくね!
次回は、プレイヤーから弾を発射する機能を実装するつもりだよ!

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

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

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

 

5+

2 件のコメント

  • ゲームを実行してもゲームが起動しません。、、、
    コードの打ち間違えでは無いと思うんですけど、、
    何か対処法などはありますか?

    0
  • ゴッリラ へ返信する コメントをキャンセル

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

    ABOUTこの記事をかいた人

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