【FuzeBasic】フォントを変えて遊んじゃおう!
今回もFuzeBasicのworksheetに取り組みます。
FuzeBasicでは、CHR$(#)コマンド使って、画面に文字(ABCなど)を書くことができます。
(例えば、「A」と書くには、CHR$(65)をPRINTする)
この文字をよく見てみると、横8マス×縦10マスで出来ています。
そして、文字ごとにマスを塗るor塗らない、というデータを持っています。
この塗るor塗らないデータを設定し直して、文字ではなく簡単な絵を描いてみましょう。
フォントを変える
インベーダーのアニメーションを作る
試しに、下記のプログラムを動かしてみてください。
CLS DEFCHAR(1, 0, 66, 36, 126, 90, 255, 189, 129, 102, 0) DEFCHAR(2, 0, 24, 36, 126, 90, 255, 255, 66, 60, 0) FONTSIZE(10) INK = Green LOOP PRINTAT(0,0);CHR$(1) WAIT(0.2) PRINTAT(0,0);CHR$(2) WAIT(0.2) REPEAT END
インベーダー(知ってるよね?)のアニメーションができています。
DEFCHARコマンドを使って、文字を表示するときのデータを再設定できます。 1番目の文字の設定を変えるときは次のようにします。
DEFCHAR(1, 塗るor塗らないデータ)
塗るor塗らないのデータは、横8マス×縦10マス分だけ指定しています。
一つの数字で、横8マス分になります。
10個の数字で、縦10マス分になります。
下記のように塗りつぶすところの数字を足した値になっています。
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 数字 |
---|---|---|---|---|---|---|---|---|
0 | ||||||||
■ | ■ | 66 (=64+2) | ||||||
■ | ■ | 36 (=32+4) | ||||||
■ | ■ | ■ | ■ | ■ | ■ | 126 (=64+32+16+8+4+2) | ||
■ | ■ | ■ | ■ | 90 (=64+16+8+2) | ||||
■ | ■ | ■ | ■ | ■ | ■ | ■ | ■ | 255 (=128+64+32+16+8+4+2+1) |
■ | ■ | ■ | ■ | ■ | ■ | 189 (=128+32+16+8+4+1) | ||
■ | ■ | 129 (=128+1) | ||||||
■ | ■ | ■ | ■ | 102 (=64+32+4+2) | ||||
0 |
他のフォントも変えてみる
他のフォントも変えてみましょう。
何が書かれるか、分かるかな?
CLS DEFCHAR(1, 126, 126, 24, 24, 24, 24, 24, 24, 126, 126) DEFCHAR(2, 0, 36, 126, 255, 255, 255, 126, 60, 24, 0) DEFCHAR(3, 0, 66, 36, 126, 90, 255, 189, 129, 102, 0) FONTSIZE(8) LOOP INK = Yellow PRINTAT(0,0);CHR$(1) WAIT(0.5) INK = Pink PRINTAT(0,0);CHR$(2) WAIT(0.5) INK = Green PRINTAT(0,0);CHR$(3) WAIT(0.5) REPEAT END
正解は、こちら!
まとめ
文字を書くコマンド(CHR$(#))を使って、絵を描いてみました。
使い方によっては、自分でかっこいい文字を作ったり、アニメーションするキャラクターを作れたりしますね。
工夫して遊んでみよう!