ゲームで時間を計測するときやスコアを表示するとき数字をデジタルっぽく表示させるライブラリをつくりました。

DigitalWatch6クラスの「6」は6桁で表示するという意味です。

6桁といっているのにピクチャーボックスが8個あります。これは時間を「XX:XX:XX」と表示させるためです。コロン2個分多くつくっているわけです。

それからpng形式でデジタルっぽい数字もつくります。

最初にユーザーコントロールの上にピクチャーボックスを配置して、その位置を記憶させます。それからユーザーコントロールのサイズも記憶させます。ユーザーコントロールのサイズが変更されたときに元のサイズと比較してどれくらい拡大または縮小されたかを調べます。これがわかればピクチャーボックスの位置とサイズもわかります。

時刻を表示させるときはSetTime(TimeSpan ts)メソッドとSetTime(int first, int second, int third, int fourth, int fifth, int sixth)メソッドでどの桁にどの数字が入るか調べて、事前にBitmapsに取得しておいたBitmapをセットします。自然数nを表示させたければBitmaps[n]を使えばよいということになります。

これを単純なクリックゲームをつくるに表示させてみるとどれくらい時間がかかるのか知ることができます。

これを単純なクリックゲームをつくるに表示させてみましょう。

できあがったdllを参照に追加。そして

とやればツールボックスからドラッグアンドドロップでフォームに追加することができます。