kakakakakku blog

Weekly Tech Blog: Keep on Learning!

潜水艦の操縦士になろう / ドットインストール「Scratch で潜水艦ゲームを作ろう」を受講した

ドットインストールには昨日紹介したScratch 3.0 入門以外にもう1個「Scratch で潜水艦ゲームを作ろう」というコンテンツがある.Scratch の基本的な操作を理解した上で「より高度な操作」を学びながらゲームを作っていくことができる.とても楽しく,僕も使ったことがないブロックがあったりして,素晴らしいコンテンツだった!今回も「良さ」を紹介したいと思う.以下に載せた「全21個」の動画があり,全て3分以内で終わるので,流し見をするだけなら1時間もあれば十分!

  • 01 : 潜水艦ゲームを作ってみよう
  • 02 : 潜水艦の素材をアップロードしよう
  • 03 : コスチュームを切り替えてみよう
  • 04 : スプライトをスムーズに動かそう
  • 05 : 潜水艦を矢印キーで動かそう
  • 06 : 背景を作り込んでいこう
  • 07 : 壁と衝突したか判定しよう
  • 08 : 他のスクリプトを止めてみよう
  • 09 : メッセージを送ってみよう
  • 10 : ブロックを整理していこう
  • 11 : レベルごとに背景を作っていこう
  • 12 : ゲームクリア画面を作ろう
  • 13 : 背景が切り替わる条件を設定しよう
  • 14 : レベルアップで背景を切り替えよう
  • 15 : ゲームクリアできるようにしよう
  • 16 : 敵を作っていこう
  • 17 : 敵を上下に動かそう
  • 18 : 敵との衝突判定をしよう
  • 19 : レベル 3 だったら敵を表示しよう
  • 20 : BGM を追加しよう
  • 21 : 効果音を追加しよう

dotinstall.com

作るもの 🚢

「Scratch で潜水艦ゲームを作ろう」では,名前の通り「潜水艦ゲーム 🚢」を作る.以下に埋め込んだ Scratch プロジェクトの完成版が公開されている.簡単に言えば「潜水艦を上下に動かしながら壁にぶつからないように進んでいくゲーム」になっている.潜水艦が重力により沈んだり,ステージによってコースが違ったり,当たると爆発してしまう敵が出てきたりもする.よくでてきて普通に楽しい!わいわい!

良いところ 1 : 自作の背景と色を使った衝突判定を学べる 🚢

序盤で Scratch のペイントエディタを使って「背景」を自作する.重要なのは「壁」の部分で実はオレンジ色のペンで手描きをしている.手描きをしてしまうとスプライトにすることができず,衝突判定はどうやるんだろう?と考えていたら「もし < オレンジ色に触れた > なら」という制御で実現していた!色を衝突判定に使うアイデアは使ったことがなくて,なるほどー!と思った.以下は自分で作った「背景 : LEVEL 4」でカスタマイズして楽しむこともできる(頑張って進んでいるところww)!

f:id:kakku22:20210225165848p:plain

良いところ 2 : メッセージを学べる 🚢

Scratch で別のスプライトやステージを同期的に(実際に同期しているかどうかは別として)制御する場合「メッセージ」という機能を使う必要がある.メッセージを送る側とメッセージを受信する側で独立してワークフローを作るイメージになり,今回のコンテンツでは「リセットメッセージ」「レベルアップメッセージ」を使う.「メッセージ」を使うとより高度なワークフローを作ることができるため実際に学べるのはとても良いと思う.「変数」と組み合わせた送信先の制限など実践的な Tips は Japanese Scratch-Wiki にも載っている.

ja.scratch-wiki.info

良いところ 3 : リファクタリングを学べる 🚢

「10 : ブロックを整理していこう」では,簡単ではあるけど,重複したブロックを整理するリファクタリングを学べる.動くなら良いじゃん!と娘に言われてしまうかもしれないけど,修正箇所が増えてきたら教えてあげる良いタイミングかもしれない!「リファクタリング(整理)」という観点を学べるのも素晴らしい!今回のコンテンツでは Scratch「ブロック定義」までは使わないけど,より複雑化するなら検討すると良いと思う.

ja.scratch-wiki.info

良いところ 4 : 背景番号を使った Tips を学べる 🚢

全ての背景をクリアしたら「背景 : GAME CLEAR」を表示して,ワークフローを止める必要がある.仕組みとしては「レベルアップメッセージ」を受信したら「次の背景にする」ブロックを実行しているため,そのままだと「背景 : GAME CLEAR」で右に進むと,また「背景 : LEVEL 1」に戻ってしまう.

そこで「もし < ステージの背景 # = 4 > なら」という背景番号を使った条件でクリアを判定している.マジックナンバーに依存してしまうので,ベストプラクティスではないかもしれないけど「添字」を使うという Tips を学べるのは参考になると思う.正確には以下のように「スプライトの他のスクリプトを止める」「すべてを止める」も組み合わせてゲームを止めている.

f:id:kakku22:20210225174952p:plain

まとめ

ドットインストールで学べる「Scratch で潜水艦ゲームを作ろう」Scratch の基本的な操作を理解した上で「より高度な操作」を学びながらゲームを作れる素晴らしいコンテンツだった!是非受講してみて欲しい!今回紹介した「良いところ」以外にもいろいろと工夫されているぞ!

dotinstall.com

関連記事

Scratch に入門するならまず以下を読んでもらえると良いかと!

kakakakakku.hatenablog.com