とわ君に独り言2(痛)

MSXやエレキギターが好きなおっさんの戯言。妻が白血病で亡くなり、3人の子供達と暮らしてます。昔のブログ→id:TOWA0104

■MSX BASIC入門 ゲーム制作②■スプライト表示をザックリ説明!

本題
◆娘のためのBASIC入門講座第2回っ!◆

■スプライト表示の説明■
前回最後に入力したプログラムをザックリ説明します。

10 SCREEN1,1
20 A1$=CHR$(&B11111111)
30 A2$=CHR$(&B11111111)
40 A3$=CHR$(&B11111111)
50 A4$=CHR$(&B11111111)
60 A5$=CHR$(&B11111111)
70 A6$=CHR$(&B11111111)
80 A7$=CHR$(&B11111111)
90 A8$=CHR$(&B11111111)
100 SPRITE$(0)=A1$+A2+A3+A4$+A5$+A6$+A7$+A8$
110 PUTSPRITE 0,(99,99),5,0

■↓ここからザックリ説明

●10行●(初期設定)
「SCREEN1,1」

最初に覚えた最大横32×縦24マスのSCREEN1の後に「,1」が追加されています。
この部分はスプライトの機能の設定で、
・0だと縦横8✖8ドット表示
・1だと縦横8✖8ドットの拡大表示
・2だと縦横16✖16ドット表示
・3だと縦横16✖16ドットの拡大表示になります。
今回はデータが少なく1番扱いやすい、縦8マス横8マスの四角いマス目のような物を2倍に拡大する指定をしています。
(ドットとは画面上の1番小さな1つの点で、ピクセルとも言います)

●20〜90行●
「20 A1$=CHR$(&B11111111)」
から90行までの似たような8行分

キャラクターの画像データの準備
1行横8マス(ドットと言います)で8行分の画像データを用意しています。(8✖8マスの64ドット分)

※20行の「A1$=」は、A1$という文字列を入れられる箱のような物の中に、=より後の文字データを入れる「変数」という物で、
文字を箱の中に入れる場合は、アルファベットや数字の組合せに$を付けて表記します。
(必ずアルファベットで始まり、文字数は基本2文字までです)
30〜90行は残りの箱(変数)のA2$〜A8$を登録(定義)しています。
(変動する可能性がある数値を入れる箱が変数)

●100行●(画像データを登録)
「SPRITE$(0)=A1$+A2$+A3$+A4$+A5$+A6$+A7$+A8$」
キャラクターの1行づつの画像データを1つにまとめスプライト番号0番に登録(定義)しています。

●110行●(スプライトを表示)
「PUTSPRITE 0,(99,99),5,0」
「5」の部分は色の指定で、前回説明しているので飛ばします。
・書式の決まり事は以下の通りです。

PUTSPRITE■,(■,■),■,■

こういう形だと覚えましょう。
※■は各数値や変数



■今回詳しく説明していないこと■
・&B
2進数と言う数の考え方を使う時のおまじないです。
・CHR$
文字をキャラクタ番号で表す方法の1つです。

■新しく学んだこと■
・「$」のついた文字型の変数
・「SCREEN」の2つ目の数値の意味


■まとめ■
予想以上に長くなり難しいので、今回はここまでとします。
次回こそは動かして行きましょう!

〜〜「MSX BASIC入門 ゲーム制作 本編」〜〜
■簡単準備編■→https://onl.bz/1yGgkXK
■スプライト表示■→https://onl.bz/2UFJhAx


◆時折、追記修正します◆