パパコーダー

子どもと一緒にプログラミングを始めよう!2019年3月からCoderDojo溝口という子ども向けのプログラミングサークルを始めました。神奈川県川崎市の近くにお住まいの方はどうぞ遊びに来てください。

【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

インベーダー(知ってるよね?)のアニメーションができています。

f:id:oco777:20190508214040j:plain
DEFCHAR

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

正解は、こちら!

f:id:oco777:20190508214940j:plain
DEFCHAR-2

f:id:oco777:20190508215005j:plain
DEFCHAR-3

まとめ

文字を書くコマンド(CHR$(#))を使って、絵を描いてみました。
使い方によっては、自分でかっこいい文字を作ったり、アニメーションするキャラクターを作れたりしますね。
工夫して遊んでみよう!

papa-coder.hatenablog.com

papa-coder.hatenablog.com

papa-coder.hatenablog.com

papa-coder.hatenablog.com