データベースの準備が出来たので、ランキングの表示処理から作成に取り掛かった。
トップ10のランキングの取得は、データベースの有無確認と一緒の処理で行った。
これも、ほぼテストしたときと同じ処理。
;ハイスコア上位10位までを取得して配列に保存 sql_q "SELECT *,substr(strftime('%Y/%m/%d',rec_date),3) as r_date FROM scorelist ORDER BY score DESC ,rec_date LIMIT 10" count = stat sdim score_l,20,count sdim score_name_l,3,count sdim stage_l,10,count sdim rec_date_l,8,count repeat count score_l(cnt)=sql_v("score") score_name_l(cnt)=sql_v("score_name") stage_l(cnt)=sql_v("stage") rec_date_l(cnt)=sql_v("r_date") sql_next loop
ランキングの表示は、score_lなどの配列変数に格納した値を使う。
このあたり、変数を適当に増やせるのはHSPの良いところでもあり、悪い、というより困るところだよなぁ。
せめて構造体は使いたいところ。
閑話休題。
ランキングの表示は、ストーリー表示と同じく、タイトル画面で一定時間経過したら、表示ルーチンに飛ばすようにした。
ランキングとストーリーが交互に表示されるよう、フラグを付けて分岐させた。
表示自体は、単純にrepeat~loop命令で、順番にpicmesすればいいのだが、多少凝ってみた。
まずは、ストーリー表示と同じく、下からスクロールして出てくるように。pos命令で調整。
トップ3を目立たせようと、1、2、3位と4位以下で表示色を変更した。
なんかそれっぽいw
表示には満足したので、次はランクインしたときのネームエントリー処理を作る。