2回目ですー。
今回はミニゲームを作成してみましたので、良ければ参考にしてください。
このゲームの仕組みは簡単ですので、ソースの流用はご自由に!
小学校の先生でサンプル作成に困っている方には良いかと。特に必要はないですが、使用された際はご連絡いただけるとすごく喜びます。ご連絡はtwitterアカウントにてお願いします!
前回はスプライトを矢印キーの方向に進めるという課題をやりました。
息子(小二)的には、これはこれで面白かったみたいなのですが、自分で工夫をして変更するということは難しそう。
ということで簡単なゲームを作成してみました。
■落下物をとるゲーム
こちらのゲームは
・ネコを左右キーで動かします。
・コウモリがリンゴを落とします。ネコがリンゴをとると+10点
・お化けがオレンジ色のボールを落とします。オレンジ色のボールをとると-10点
・ゲームオーバー無しです。
まあ、基本的な落ちてくるアイテムをキャッチするゲームですね。
子供に理解させるにはこれくらい単純な方がいいかと思います。
こちらのスクリプトを好きに改造してみなさい、ということでやらせてみました。
■どんな改造をしたか
わかりやすいところで自分が好きなキャラクターにしていましたね。
お化けのスプライトを変えてみたり、リンゴのスプライトを変えてみたり。
リンゴを落とすコウモリはもっと味方みたいな画像にしたかったのですが、あんまりそういったスプライトがプリセットされていないんですよね。
オレンジ色のボールの画像に関しても、もっと爆弾みたいなのがほしかったのですが。
シューティングゲーム作るためのミサイルや、爆発なんかもほしいのですが。
まあ、ただで使えるものなので贅沢ですよね。
そのあたりを工夫して描いて使うところに、scratchのゲーム制作のだいご味があるのかもしれません。
息子的には仮面ライダーの画像にしたいということで、画像検索で探していました。
※著作権的に問題があるので、アップはしません!
今まではタブレットの音声で画像検索をしたことはあるのですが、文字入力でのやり方を覚えたのは収穫ですね。
あと散々webはみていたのに、「ブラウザ」という言葉を知らなかったのは新鮮でした。
知らずに使っていたのねー。でもPCの基本的な使い方や、ローマ字なんかも学べたのでよかったですね。
■最終的にどんな感じになったか
上からアイテムを落とすキャラクターをどんどん増やしていましたね。
あとは点数がたくさん入ると面白いようで、とれる点数のインフレが起きていました。
効果音なんかいじるかな、と思っていましたが少し触っただけであんまり興味がないようでしたね。
リンゴやオレンジ色のボールはコウモリやお化けの位置から落ちるようにしてあります。
スクリプトを単純にコピーすると、それがそのままになってしまうので発生位置を指定し直す必要があります。
そういったオペレーションを覚えたのが、今後の作業につながっていく気がします。
リンゴを逆方向に動かしたいということで、「どうしたらいいと思う?」と逆質問したら、ある程度誘導はしましたがy移動を逆方向にすればいい、と気が付くことができました。
こういった感覚がちゃんとしているのは、ゲームをプレイしているおかげなんだと思います。
最終的にアイテムを落とすキャラクターが6対くらいになりました。
■スクリプトの工夫について
スクリプトに関して簡単に説明しておきます。
BGMですが、プリセットされているものをループしてあります。
これ単純に「ずっと」で鳴らしておけばいいのかと思っていたのですが、それだと最初のところで連続再生がかかるんですね。
ちゃんとループさせるためには、その音が鳴る時間を指定して、その時間分待ってから次のループを始めないといけない。
あとお化けとコウモリが上下しています。
これはsin波を使用しています。
sin関数があるのはわかっていたのですが、変数に与えるものってなんだろうと思っていたのですが、ズバリ角度ですね。
まあ言われてみればそりゃそうかなんですが、わかりやすく書いていた記事がなくて少し戸惑いました。
角度を30度とか45度とか変化させていくと-1~1の間で数値が変化されますので、上下最大30ドット移動させたいのであれば、その出た値に30をかければよいです。
■次は
簡単なシューティングゲームを作成してみるつもりです。
後はタイトル画面を作成してみましょうかね。
いまはゲーム全体にかかわるような初期化でも、特定のスプライトで初期化をしているのですが、きれいなやり方ってなんなんでしょうね。
あと、スプライトが途中で出なくなるバグなんて言うのも遭遇しています。
そのあたりも調査できるとよいなー
以下のページで公開しています!
https://scratch.mit.edu/projects/368643368
あとQiitaでも投稿してみました。