スコア表示が面倒なことに気づいた。
BASIC!では、フォントを指定してアプリに埋め込むことができたので、電卓で使われる7セグメント液晶風フォントをフリーで見つけて組み込み、表示していた。
しかし、HSP3Dishでは、フォント指定ができない。(通常のHSPは指定可能。HSP3Dishの制限事項になっていた。バージョン3.6では出来るようになる?)
なので、あらかじめ使用する文字を画像にして、それを表示するようにした。
幸い、ゲーム&ウォッチなので、0~9までの数字と、ゲームオーバー時に表示する文字列ぐらいで済む。
数字はサイズさえ決めてしまえば、等幅で切り出しができるので、celdiv命令で問題なく対応できる。
こんな画像を作って、配置することにした。
スコアを表示するために、スコアの数字を文字列に変換したあと、一桁ずつ取り出し、対応する画像を表示するサブルーチンを作成した。
ゆくゆくは、他のプログラムでも再利用できるようにモジュール化したい。
celload "digitalfont.png",7 celdiv 7,26,32 ; 7セグメントフォントを分割 … *showscore ;スコアの表示ルーチン scrstr=str(score) for li,strlen(scrstr)-1,-1,-1 pos 420-(strlen(scrstr)-li)*18,100 celput 7,peek(scrstr,li)-48,0.6,0.6 next return