スクラッチでタイピングゲームの作り方を説明していきます。
タイピングゲームの作り方には色々な作り方がありますのでこれが正解というわけではなく1つの例として考えて頂ければと思います。
実際に作って見る事でわかる事はたくさんあります。
目次
タイピングゲームの仕様
完成イメージです。
どのようなタイピングゲームを作るかを書いてみます。
タイピングゲームの仕様
- 難易度は3段階とします。
- レベル1はアルファベット1文字
- レベル2はひらがな1文字。ひらがなを表示してヒントとした入力するアルファベットを表示する。
- レベル3は単語。ヒントとした入力するアルファベットを表示する。
- 問題は5問。
- 正解の数、間違いの数をカウントする。
- 正解の数にかからわず5問で終了する
- 問題は準備した問題からランダムに出題するが、1回出題した問題は出ないような制御は行わない。
このような内容で作ります。
最後のランダムな出題の1回出題した問題に関しては、スクラッチの「乱数」という関数を使うと1度出題した問題が再度出題される事もあるのでプログラミングで1回出題した問題は出題しないという制御は意味になります。
タイピングゲームの仕組み
プログラムの作り方を説明する前にこのタイピングゲームの仕組みを簡単に説明します。
説明を簡単にするためにレベル2で説明をしていきます。
まず、タイピングゲームに出す問題は事前に準備してリストに登録します。
リストの中からランダムに出題します。
画面に問題を表示するためのスプライトとヒントを表示するためのスプライトは問題と同じだけのフォームを準備します。
問題表示用・ヒント用のスプライトには問題分のフォームを登録しますが、フォーム名を必ず問題と同じにします。
問題「け」のフォーム名は「KE」とします。
上の例で「1から5のランダムな数字」という処理をして「4」という数字が出たとします。
問題は「KE」になるので「KE」というフォームを表示するプログラムを書きます。
後は、入力された答えと「KE」が同じであれば「正解」、違えば「間違い」となります。
この流れを理解出来ていれば難しいプログラムではありません。
まずは、この流れを理解してからプログラミングを始めましょう。
ステージの動き
このタイピングゲームでは必ず必要なものはありません。
タイピング中に音楽がなるようにしてみます。
タイマーをつけたい時はステージに追記するといいでしょう。
好みで機能を追加してみて下さい。
レベルの動き
どのレベルを実行するかを管理するためのスプライトになります。
スクラッチの標準にはないので自分で作ります。
レベルの数字を書くだけなので簡単に作る事が出来ます。
上の図と同じものでなくてもいいでしょう。
フォーム名を「1」「2」「3」としてレベル毎に作ります。
フォーム名は「1」「2」「3」という名前にしましょう。
フォーム名を1・2・3にする理由はどのレベルのタイピングを行っているかフォーム名から判断するためです。
「レベル」の動きは、このスプライトをクリックした時に「次のコスチュームにする」ようにします。
プログラムは以下になります。
表示する場所は問題やヒントを設定してから調整してもいいでしょう。
ネコの動きを作ろう
メインとなるネコの動きを説明していきます。
ネコを表示する
まず、ネコを表示する場所と大きさを決めます。
正解と間違いを数える変数「正解」「間違い」を作ります。
変数「正解」「間違い」を初期化するために「0」をセットします。
変数の作り方がわからない場合は、「スクラッチの変数をおぼえよう」をご覧ください。
このようなプログラムになります。
問題を作る
タイピングゲームで出題する問題を作っていきます。
レベルの判定
どのレベルのタイピングを実行するかはスプライト「レベル」のどのフォームが表示されているかで判定します。
調べるメニューから「ステージ 背景#」というパーツを持って来て「レベル コスチューム名」に変更しましょう。
この方法でレベルのスプライトに何が表示されているか判断します。
レベル別問題を作る
実行するレベルがわかったらレベル毎に問題を作っていきます。
レベル2の問題を作ってみましょう。
プログラムをシンプルにするためにブロック定義とリストを使います。
ブロック定義の作り方はブロック定義メニューから「ブロックを作る」を選択して「レベル2準備」という名称にします。
続いて問題を入れるためのリストを作成します。
変数メニューから「リストを作る」をクリックして「レベル2問題」という名前のリストにします。
「レベル2問題」を作成します。
出題する問題はブロック定義の中に作成していきます。
まず、リスト「レベル2問題」の中身をすべて削除します。
それから出題する問題を追加していきます。
プログラムは以下のようになります。
問題を追加する場合はリストに追加してスプライト・ヒントを追加すれば出来るという事になります。
タイピング開始
問題が出来れば、「タイピング開始」というメッセージを送ります。
受け取った方は、出題する問題を決めて問題を表示するという動きをします。
答え合わせをする
入力された回答が正しいか、判定をします。
もし、「問題=回答」なら変数「正解」を1増やして音「win」を終わるまで鳴らす。
そうでなければ、変数「間違い」を1増やして音「boom cloud」を終わるまで鳴らす。
上記を5回繰り返します。
問題スプライトの動きを作ろう
問題のスプライトの動きを作っていきます。問題のスプライトはレベル毎に3つ作る必要がありますが、ここでは「レベル2」について説明を行いますのでレベル1とレベル3は自分で考えて作ってみましょう。
スプライトを作ろう
タイピングに使うスプライトはスクラッチの標準にはないので自分で作らないといけません。
以下にサンプルを表示するので作ってみましょう。同じものである必要はありません。
スプライトを作る際に注意をしないといけないのは、フォーム名をよみがなにしないといけません。
問題2の動き
問題2の動きを作っていきます。
作成するプログラムは、2つです。
「ハタが押された時」「タイピング開始」のメッセージを受け取った時です。
ハタが押された時の動きを以下です。
- コスチュームを「START」にする
- 表示する場所を決める
- ステージから隠す
(スタート用に問題が書いてないフォームをSTARTとして作っています)
そして「タイピング開始」のメッセージを受け取った時の動きは
レベル2のモードであれば実行します。
リストからランダムに問題を出力していきます。
以下を実行します。
- リストからフォーム名を取得してフォームを表示する。
- 変数「問題」にリストから取得した値をセットする。
- メッセージ「ヒントを出す」を送る
以下のようなプログラムになります。
ヒントスプライトの動きを作ろう
ヒントも問題とほぼ同じ作りになります。
問題2を参考にしてヒントを作ってみましょう。
ヒントは実際に入力する文字を表示します。
このようなプログラムになります。
スクラッチタイピングゲームの作り方まとめ
タイピングゲームのレベル2の部分の作り方を説明してみました。
「レベル1」「レベル3」は仕組みが理解出来ていればそれほど難しいプログラムではないので頑張って作ってみましょう。
難しいイメージのあるタイピングゲームも作ってみれば簡単だったのではないでしょうか?
ここまで出来たらゲームをアレンジいてみましょう。
少しアレンジのアイデアを書いてみます。
- レベル4を作る
- 5問ではなく問題数を増やす
- 時間制にして時間内に多く入力するようにする
- 「正解」が〇問の時に終了するようにする