今回つくるゲーム
難易度
今回はマリオパーティーで人気のくるりんクロック風のゲームを作っていきます。短針の上に乗ったキャラクターが回ってくる長針をジャンプして避けます。時間が経つたびに短針と長針の回る向きや速度がどんどん変化して難易度が上がっていきます。くるくる回る時計をどのように3次元的に表現できるかがこのゲーム作りのポイントとなります。
まずは実際にゲームをプレイしてみてください。スペースキーでジャンプです。レベル15までいけばクリアです。
はじめに
まず、以下をリミックスしてください
こちらにはゲームを作るのに必要な素材が揃っています。
スプライトのコスチュームを自由自在に作るには曲線の描き方に慣れる必要があります。コスチュームを1から作りたい人はこちらも参考にしてください。
時計を組み立てる
まず、時計を組み立てましょう。時計は以下の要素で構成されています。5つのパーツを順番に組み合わせていくことで時計が完成します。
今回時計を3次元的に表現したいので、針は画面の上に行くほど短くなり、手前に来るほど長くなります。しかし、それを表現するのはとても大変なので、短針を時計盤下の下側に、長針を時計盤上の下側に隠すことで対応しています。
このように順番に並べるために以下のようにコードを書きます。わかりやすいように針は回転させましょう。
※背景は自動的に最背面になるので、スプライトを並べる時の最背面は短針になります。
この状態で緑の旗を押してみましょう。
以下のように短針と長針が円の中を回っているように見えると成功です。
プレイヤーの動きを作る
短針の上にプレイヤーを乗せる
まず、短針の上にプレイヤーをのせていきます。短針がくるくる回ると、プレイヤーもあわせてくるくる回らなければなりません。空間が3次元になっているので、遠近法で以下のルールとなります。
1.短針が12時に行くと、中心からの距離が一番短くなり6時に行くと中心からの距離が一番長くなる 2.短針が12時に行くと、プレイヤーは一番小さく見え、6時に行くと一番大きく見える
中心から一番短い距離を80、一番小さいサイズ50%をとして、三角関数を用いて以下のコードになります。
例えば、針が60度(2時)の位置にあるときは以下のような考え方になります。
緑の旗を押してみてください。うまくプレイヤーが3次元をまわる短針の上に乗っているように見えれば成功です。
プレイヤーをジャンプさせる。
次にプレイヤーを短針の上でジャンプさせていきます。
プレイヤーのコードに以下を追加します。コスチュームをジャンプに変更した後の時間が滞空時間になり、この秒数が短いと難易度が上がります。またコスチュームを待機に戻した後に0.5秒待って連続ジャンプができないようにします。
連続ジャンプができてしまうとスペースを押しっぱなしにしておけばクリアできてしまうので注意!
ゲームオーバーを作る
次に、ゲームオーバーを設定していきます。プレイヤーが長針にぶつかるとゲームオーバーになりますが、プレイヤーのまま当たり判定を行ってしまうと下図のように耳がちょっと触れたり、ヒゲが触れたりするだけでゲームオーバーとなってしまいます。それではゲームとしては成立しません。
と、いうことで、当たり判定用のスプライトを用意します。ターゲットと名付けられた赤い四角いブロックです。ターゲットはキャラクターの足元に小さく設定されるようになっているので、下図のように多少長針が顔にかかっても、ターゲットに触れていなければセーフです。
ターゲットのスプライトに以下のコードを書いていきます。位置と大きさについてはプレイヤーと同じ考え方です。ターゲットが長針に触れた時に、プレイヤーがジャンプしていなかったら(コスチュームが待機なら)ゲームオーバーとなります。
次に、プレイヤーのコードにもゲームオーバーを追加していきます。ゲームオーバーになるとプレイヤーが上に飛んでいきます。
ゲームを管理する
ここまできたら、ゲームを管理していきます。ゲームの構成は以下のようになります。
これをゲーム管理のスプライトにコードとして書き込んでいきます。
続いて短針と長針のコードを以下のように変更します。短針・長針の動きを1セットでステージとしていきます。このステージを最終的には15ステージ用意していきます。
これで、実際にプレーしてみてください。以下のようにクリア、ゲームオーバーが再現できると成功です。
ステージを量産する
ここまでできたらゲームは完成したも同然です。あとはステージを重ねていくだけです。今回は以下のように設定しましたが、回転の向きと大きさ、長さを組み合わせて難易度の調整をしてみてください。
すべてのコード
これで完成です。すべてのコードはこちらからも確認できます。