いよいよグラフィックの世界へようこそ!🎉 これまでのテキストベースのプログラムから一歩進んで、画面に図形を描画する方法を学びます。BASICには、点を打ったり、線を引いたりするための簡単な命令が用意されています。このセクションでは、画面の表示モードを設定する方法と、基本的な描画命令であるPSET
(点を描く)とLINE
(線を引く)の使い方をマスターしましょう。
画面モード (SCREEN) の設定
グラフィックを描画する前に、まず画面をどのモードで表示するかを決める必要があります。画面モードによって、画面の解像度(どれだけ細かく表示できるか)や同時に使える色の数が変わります。SCREEN
命令を使ってモードを指定します。
基本的な構文はシンプルです。
SCREEN モード番号
モード番号は、使用するBASICの処理系(QBasic, FreeBASICなど)によって異なりますが、よく使われる代表的なモードがあります。以下は、QBasicやFreeBASICでよく使われるモードの例です。(※環境によって利用できるモードや番号が異なる場合があります。)
モード番号 (例) | 解像度 (横x縦) | 色数 | 備考 |
---|---|---|---|
0 | テキストモード | テキストモード | 文字のみ表示(デフォルト) |
1 | 320×200 | 4色 | CGAグラフィック |
7 | 320×200 | 16色 | EGAグラフィック |
9 | 640×350 | 16色 | EGAグラフィック (高解像度) |
12 | 640×480 | 16色 | VGAグラフィック |
13 | 320×200 | 256色 | VGAグラフィック (多色) |
例えば、320×200ピクセルで256色が使えるモードにするには、次のように書きます。
SCREEN 13
FreeBASICなど、より新しい処理系では、さらに多くのモードや高解像度、多色表示がサポートされています。使用している環境のマニュアルで確認してみましょう。
点を描画する (PSET) ⚫
画面に点を描画するには PSET
(Put SET) 命令を使います。座標 (X, Y) と色を指定して、その位置に点を打ちます。
基本的な構文は次の通りです。
PSET (X座標, Y座標), 色番号
座標は、画面の左上が (0, 0) となり、右に行くほどX座標が、下に行くほどY座標が大きくなります。色番号は、選択した画面モードで利用可能な色のパレットに対応します。指定を省略すると、通常は前景色(デフォルトは白など)が使われます。
例: 画面の中心あたりに赤い点を描く
SCREEN 12 ' 640x480, 16色モードに設定
CLS ' 画面をクリア
' 画面の中心座標を計算 (おおよそ)
DIM ScreenWidth AS INTEGER
DIM ScreenHeight AS INTEGER
ScreenWidth = 640
ScreenHeight = 480
DIM CenterX AS INTEGER
DIM CenterY AS INTEGER
CenterX = ScreenWidth / 2
CenterY = ScreenHeight / 2
' 中心に赤い点 (色番号 4) を描画
PSET (CenterX, CenterY), 4
' 何かキーが押されるまで待つ
SLEEP
👆 このコードは、画面モード12 (640×480) を設定し、画面中央に色番号4(通常は赤)の点を描画します。CLS
は画面をきれいに消去する命令、SLEEP
はキー入力があるまでプログラムの実行を一時停止する命令です。
線を描画する (LINE) 📏
点を描けるようになったら、次は線を描いてみましょう! LINE
命令を使えば、指定した2点間に直線を引くことができます。
基本的な構文は次の通りです。
LINE (X1, Y1)-(X2, Y2), 色番号
(X1, Y1) が始点の座標、(X2, Y2) が終点の座標です。色番号を指定すると、その色で線が描画されます。省略すると前景色が使われます。
例: 画面に青い対角線を描く
SCREEN 12 ' 640x480, 16色モード
CLS
' 左上 (0, 0) から右下 (639, 479) へ青い線 (色番号 1) を引く
LINE (0, 0)-(639, 479), 1
' 右上 (639, 0) から左下 (0, 479) へ青い線 (色番号 1) を引く
LINE (639, 0)-(0, 479), 1
SLEEP
👆 このコードは、画面の対角線上に2本の青い線(色番号1)を描画します。
LINE命令の応用: 矩形(四角形)を描く
LINE
命令には、矩形を描くためのオプションもあります。
' 枠線のみの矩形を描画
LINE (X1, Y1)-(X2, Y2), 色番号, B
' 塗りつぶされた矩形を描画
LINE (X1, Y1)-(X2, Y2), 色番号, BF
(X1, Y1) と (X2, Y2) は、矩形の対角線の座標を指定します。末尾に B
(Box) を付けると枠線が、BF
(Box Fill) を付けると塗りつぶされた矩形が描画されます。
例: 緑色の枠線と黄色で塗りつぶされた矩形を描く
SCREEN 12 ' 640x480, 16色モード
CLS
' 左上に緑色 (色番号 2) の枠線を描画
LINE (50, 50)-(200, 150), 2, B
' 右下に黄色 (色番号 14) で塗りつぶされた矩形を描画
LINE (300, 200)-(500, 400), 14, BF
SLEEP
👆 このコードは、画面の左上に緑色の枠線、右下に黄色で塗りつぶされた四角形を描きます。
まとめ ✨
今回は、BASICでグラフィックを描画するための第一歩として、以下の内容を学びました。
SCREEN
命令で画面モード(解像度や色数)を設定する方法PSET
命令で指定した座標に点を描画する方法LINE
命令で線を描画する方法LINE
命令のオプション (B
,BF
) を使って矩形を描画する方法
これらの基本的な命令を組み合わせることで、様々な図形や簡単なイラストを描くことができます。座標や色の指定に慣れて、自由に画面をデザインできるようになりましょう!🎨
次のステップでは、SOUND
や PLAY
命令を使って、プログラムに音を追加する方法を学びます。お楽しみに! 🎶
参考情報 📚
より詳しい情報や、他のグラフィック命令については、以下のリソースも参考にしてください。
- FreeBASIC Wiki (Graphics): https://www.freebasic.net/wiki/wikka.php?wakka=FBWiki (英語ですが、FreeBASICのグラフィック関連コマンドについて詳細な情報があります)
- QB64 Wiki (SCREEN): https://www.qbasic.net/en/reference/qb64-wiki/SCREEN.htm (QBasic/QB64のSCREEN命令に関する情報。他の命令へのリンクもあります)
※上記リンクは外部サイトへのものです。リンク先の情報は変更される可能性があります。
コメント