Chapter.35 ハイスコアリストの管理とネームエントリを追加
[Chapter35 制作物]

今回は、ハイスコアリストの管理と、ネームエントリ画面を追加します。

■ハイスコアリストの管理
スコアは BCD符号により管理しているのは、SCORE処理を実装したときに説明しました。
さらに、トップスコア(第1位のハイスコア)の表示更新のために、2つのスコアを比較するサブルーチン
score_compare を作っています。

スコアは第1位から第10位まであり、整列しています。
整列を維持するためにソートする必要があるのですが、「常に整列している」ことを利用すると
処理が楽になります。
「10個の値をソートする」と考えるのではなく「ソートされている10個の中に挿入する」と考えます。
(これを挿入ソートと呼びます)

順位が高い方の数値から順に比較して、挿入すべき順位が見つかれば、現在その順位以降に記録されている情報
を1順位分だけランクダウンさせるためにメモリをブロックコピーします。
あいた隙間に、新しい得点と名前を上書きコピーすれば挿入ソートは完了します。







工事中






■ネームエントリー画面
まず、タイトル画面用のハイスコアリスト表示部分を、サブルーチンとして分離します。
これは、同じ表示をネームエントリー画面としても利用するため、処理を使い回すためです。
次に、ネームエントリーする順位によって、カーソルを表示する位置が異なるので、そのカーソル位置に相当
する VRAMアドレスを求めてしまいます。

あとは、カーソルを点滅などさせながら、方向キー入力・ボタン入力を受け付けて、表示を追従させるだけで
実現できます。




工事中






今回は、こんな感じでした。だいぶゲームらしくなってきましたね (^-^)/
次回は、背景を大幅改変です。

[▲トップページへ]