スクラッチで寿司打の作り方

中級

今回つくるゲーム

難易度3 out of 5 stars

今回はスクラッチで寿司打を作っていきます。お寿司がレーンを流れている間に指定の言葉をローマ字でインプットしていきます。最終的に何円お得だったか・損だったかを表示します。タイピングゲームの基礎がつまっているのでぜひチャレンジしてください!

この記事でも順番に作り方を解説しますがくわしくははYouTube動画で確認してください。


まずはゲームをプレイしてみましょう。

youtube解説

こちらの動画ではわかりやすくゲームの作り方を解説しています。実際に作るときはこの動画を見ながら作ることをお勧めします。チャンネル登録もよろしくお願いします!

[スクラッチ]寿司打の作り方①

タイピングをつくる

まずはタイピングのプログラムをつくっていきます。aを押すと、aが押されたと判定できるようにしていくということです。まず以下のようにプログラムを組みましょう。”打った文字”というリストを作成して、文字を打つと、リストにたまっていくようにします。

スクラッチで寿司打の作り方

同じようにbも打てるようにします

スクラッチで寿司打の作り方

このようにアルファベットをどんどん追加していきますが、aもbもとても似たような形ですね。そういうときに定義を作ります。さきほどのコードと、こちらのコードは同じ意味です。これが「引数(ひきすう)」のパワーです。

スクラッチで寿司打の作り方

同様に他のアルファベットも作っていきます。

スクラッチで寿司打の作り方

これで、タイピングができるようになりました。

問題を作る

次に問題を作っていきます。以下のように「日本語」と「ローマ字」のリストを作ります。そして日本語とローマ字が1対1になるように書いていきます。今回は50問作りました。

ローマ字にはヘボン式と訓令式の二つの方式があって、どちらでも正解にしたいところですが、そのあたりを厳密にやっていくのはスクラッチでは大変なので、今回は正解は1つということにしています。下の例だとヘボン式ですね。

スクラッチで寿司打の作り方

タイピングゲームをつくる

ここまでできたら、タイピングゲームが作れるようになります。以下のように「管理」というスプライトを新しく作り、このようにコードを書きます。

スクラッチで寿司打の作り方

それぞれの変数にチェックを入れて表示してやってみましょう。出題されたローマ字を正しく入力すると次の問題にうつります。間違えるとミスタイプが増えていきます。

スクラッチで寿司打の作り方

これだけでもタイピングゲームにはなりますね。

背景を作る

ここから、寿司打に変身させていきます。まず、このように背景を描きます

スクラッチで寿司打の作り方

レーンを流す

次にレーンを流していきます。新たに「レーン」というスプライトを作り、以下のようにコスチュームを作ります。

スクラッチで寿司打の作り方

レーンを描いて、そのまわりに大きな透明の四角を描くのがポイントです。そうすることにより端から端まできれいにスクロールをします。

スクラッチで寿司打の作り方

そしてレーンのスプライトにこのようにコードを書きます。これで旗を押すとレーンが流れるようになります。

スクラッチで寿司打の作り方

お皿を流す

次にレーンの上にお皿を流していきます。以下のように新たに「皿」というスプライトを作成して皿のコスチュームを描きます。このお皿自体にはあまり意味はないので、何種類でもどのような皿でも問題ありません。

スクラッチで寿司打の作り方

レーンを描いた時と同様に画面いっぱいに透明な資格を描いておきましょう。

スクラッチで寿司打の作り方

では、皿のコードを書いていきます。以下のようにコードを書いてください。コスチュームの乱数の部分は今回は2種類しか作らなかったので「1から2までの乱数」ですが、10種類作ると「1から10までの乱数」となります。

スクラッチで寿司打の作り方

ゲームを完成させる

最後に、時間制限を作って、終了後に●●円お得、××円損のようなスコアを表示できるようにします。

管理のコードに変更を加えていきます。まずは旗が押されたの部分、

スクラッチで寿司打の作り方
スクラッチで寿司打の作り方

次にタイプ完了の部分

スクラッチで寿司打の作り方

最後に、日本語とローマ字と単語の変数表記部分は右クリックから「大きな表示」にして左上にタイムを記載し完成です!

スクラッチで寿司打の作り方

すべてのコード

すべてのコードは以下から確認できます。こちらのコードでは連続ボーナス機能もつけています。連続でタイプミスをしなければボーナスで秒数が伸びる設定です。余力があればそちらにも挑戦してみてください!

寿司打!!