さて前回、Scratchでクイズプログラムをつくりましたが、今回はそのプログラムによりゲーム性を持たせるための改良を加えていきます。前回の記事について確認したい場合はこちら

Scratchプログラム(印西市クイズ改良版)
こちらが改良版となります。
プログラムの中身確認はこちら
改良点
改良点はこちら
・ダイバーが移動する方向によって向きをかえるようにした。
・問題を間違えた場合は強制的に次の問題へ移るようにした。
・1問当たりの制限時間を設けてタイムアップなら次の問題に移るようにした。
・得点結果によって印西にどれだけ詳しいのかを最後に判定。
・背景に魚を4匹泳がせ、より海に潜っている感をだした
では、次からこの改良点について説明していきますね。
プログラム改良点を説明
基本的な考え方
まず今回の大きな改良点である問題がランダムで出題されるという仕組みについて説明します。これには前回の問題文・選択肢・回答の配列に加え、出題チェック用の配列を用意します。この配列には、出題前を示す0を1つずついれておきます。
この図で示しているとおり、問題を出すごとに、その問題を出した番号の配列の0を1に置き換えて、問題をだしたよーとチェックしておきます。そして、再びランダムで問題を選んだ時、この出題チェックの配列を確認して、次に出そうとしている問題番号のところが0であれば、まだ出題していないので、そのまま問題を使う。もし1が入っていたら出題済なので、別の問題を選ぶように処理がはしります。
各スプライトの説明
では、ここからは各スプライトの変更点を説明します。説明は変更点だけに特化して説明しますね。
ワンちゃん
さてワンちゃんのスプライトの説明になります。ワンちゃんスプライトは以下の3つの部分からなりたっています。説明は各図を参照してください。
タイマー表示処理部
配列や変数の初期化と1問目出題の処理
2問目以降の出題と終了判定および得点判定
ヒトデ/カニ/タコ
選択肢を示すヒトデ/カニ/タコについては大きく変更する箇所はありません。一か所だけ、問題を間違えたら強制的に次の質問へ移るという処理をいれています。
ダイバー
ダイバーについてのスプライトは動きの部分の改善になります。具体的にはダイバーの動きによってダイバーの向きを変えるという処理です。具体的には以下の考え方と処理になります。
ダイバーの動ぎ処理
背後の魚
最後は背後で動かす魚の処理です。それぞれの魚は同じ処理をしており、違うのはスタートするX座標とY座標のみです。
まとめ
さて、前回のシンプル版の処理に加えて、ゲーム要素が増したプログラムとなりました。次回は、落ちてくるものをキャッチするゲームを作ってみたいと思います。
コメント