このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。
今回の課題はハイスコアを更新する方法。いろいろな活用シーンがありそうですね。ハイスコアを更新するのは簡単で、今回のゲームのスコアがハイスコアより大きいスコアだったら、もしくは短い時間だったら記録が更新され、その記録が新たなハイスコアになります。
下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。
1、事前準備
先に変数を2つ準備します。
毎回のスコアを管理する、変数:スコア
ハイスコアを管理する、変数:ハイスコア
ゲームを作成すると長くなるので、今回はスペースキーが押されたときに、変数:スコアにランダムでスコアが代入されるようにしておきましょう。
任意のスプライトを選択していただいて下の図のようなスクリプトを作成します。
スペースキーが押されたとき
「〇から△までの乱数」ブロックを使って、1~100までの乱数を取得し、変数:スコアに代入します。
スコアがわかるように「スコア 〇」と2秒言わせるようにしておきます。
※実際の作品では、この部分は必要ありません。通常のゲームでは、ゲーム中、またはゲーム終了のタイミングでスコアを更新します。
2,ケース1:スコアが高い方がハイスコアの場合
倒した敵の数や、取得したアイテム数でスコアを競う場合、スコアが高ければ高いほどハイスコアになります。
ゲーム終了のタイミングで、今回取得したスコアとハイスコアを比較、もしスコアがハイスコアより大きい場合
※任意のアクション、サンプルではハイスコア更新と2秒表示
変数:ハイスコア を変数:スコア で置き換え
3,ケース2:スコアが小さい方がハイスコアの場合
全ての敵を倒すのにかかった時間や、ゴールまで到達するのにかかった時間などを競う場合は、結果が小さい方がハイスコアになります。
この場合、事前に極端に大きな数字(初回がハイスコアになるような数字)で変数:ハイスコアをリセットしておきます。
ゲーム終了のタイミングで、今回取得したスコアとハイスコアを比較、もしスコアがハイスコアより小さい場合
※任意のアクション、サンプルではハイスコア更新と2秒表示
変数:ハイスコア を変数:スコア で置き換え
ハイスコア更新は比較的簡単なプログラムですね。
ファイブボックスでは、Unityやスクラッチの個別指導のオンラインレッスンを行っています。
ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。
Commentaires