課題の片手間にScratchでよくわからないものをつくったので貼り付けます。
多分このブログを見る人はプログラミング初学者ではないと想定していますので、「なぜこうなるのか」という説明は省略します。またこのゲーム自体も、誰かに遊んでもらうために作ったわけではないので、コードに重複や省略、偶発的な要素を含んでいます。あくまでネタとして読んでもらえると嬉しいです。
完成形はこんな感じです↓
dasa dasa douga
— マシュマロン (@maron_puyo) September 12, 2020
赤ちゃんが一人で歩こうと何度も失敗するように、私もまた、失敗を重ねるのである。(訳:見なくていい) pic.twitter.com/oIclz4y8Hc
…まあなんというか、何らかのアイデアになれば幸いです。
スプライトの説明
今回使用したスプライトは上図の4つです。爆発のスプライトはScratch側で用意されていなかったので、いらすとやさんからダウンロードしたものを使わせていただきました。爆発以外はScratchで用意されているやつです(背景も)。 Scratchは子供向けのコンテンツ(だと勝手に思っている)だから爆発とかしないのかなと思ったけど、いやでもバラエティーでも爆発してんのになんでないのか不思議でたまらないんですが(音もScratchで用意されているやつをひずませたりして作ったんですよ。一番時間かかった。)。 それでは各スプライトにくっついているコードをご紹介します。(Bowlにはコードがありません)
猫のコード
まず猫にくっついているコード(Scratchの場合ブロックって呼ぶ?)です。 スタートはこのようになっています。連続してプレイすることを想定し、まず猫を初期位置に設置しています。 猫自身にメッセージ1を送信、それを受信すると次のような動作をするようにプログラムを組みます。 これは荒ぶる猫を表現するコードです。45°がいい感じの荒ぶり具合でした。(45°でもちゃんと回ってるように見えるのが素晴らしい) そして、猫がゴミ箱に飛んでいくコードもメッセージ1を受け取ったときに実行されるよう実装されます。 音を鳴らすタイミングやメッセージを送るタイミングはいろいろと試してから決めました。 猫の仕事はこれでおしまいです。
左にいる女の子のコード
次に猫の左にいる女の子のコードです。 彼女は踊って、結果によくわからないいちゃもんつけてくるという役割です(?)。 正直この子の動きに関してはもっと面白くすることができたとは思います。 何はともあれ、コードの紹介です。 まずスタートはこれです。今これを書きながらコスチュームの初期化を忘れていたことに気が付きました。。 まず、猫から「メッセージ1」を受け取った時の動きを示します。 猫から「到達」または「はずれ」のメッセージを受け取りまでダンシングします。素晴らしい動きに思わず目を奪われること間違いないでしょう。 次に「到達」を受け取った時のコードを示します。 なかなかシビアなことを言ってきますが、ガチャの地獄のような世界を知っている我々ならこの言葉は容易に理解できるのではないでしょうか。ちなみに降水確率が40%なら私は間違いなく折り畳み傘を持っていきます。(なんの話?) なぜメッセージ「終わり」を最後のセリフの前に送らせたかというと、これも実際にやってみてそっちのほうがよかったからです。 このメッセージ「終わり」は次のセクションで説明する爆発に対して送ります。 次に「はずれ」を受け取った時の動きを示します。 まあ、大体先ほどの動きと同じですね。 女の子のコードは以上になります。
爆発のコード
爆発はロマンですね。 しかし、Scratchには爆発用の素材がなく!!!!! ここが一番時間かかりました。なにせ、いらすとやさんで画像をダウンロードしてきたり、自分でそれっぽい音を作ったりしたのでね!!!!!! 公式で作るべきですよ爆発用素材。 まずは初期化です。ここでいうべきことは特にないかと。 次に女の子から「終わり」のメッセージを受け取った時のコードです。 SpaceNoiseとやらの音をScratch内でひずませるなどして爆発音っぽいのを作りました。どんな感じの音になったのかは先の動画を参照されたし。 ここの繰り返し回数も何度か試行して導きました。「端に到達するまで繰り返す」みたいな選択肢もあったのですが、それだと画面いっぱいに画像が出せなくなってしまうし、繰り返し回数が大きすぎてもある一定の大きさまで行くと、それ以上大きくならないようで(回避方法はあるのかもしれない)なかなかシビアでした。 以上コードの紹介でした。
最後に
初めての投稿がこんなんですが、今後もこんな感じでゆるりと書くかなあ、という感じですw
ついったーメインですが、140字じゃ書ききれないあんなことやこんなことはこちらを利用するかもしれません。
コンゴトモヨロシク…