[BASICのはじめ方] Part18: 画面モードとPSET、LINEなどの描画命令

BASIC

いよいよグラフィックの世界へようこそ!🎉 これまでのテキストベースのプログラムから一歩進んで、画面に図形を描画する方法を学びます。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) を使って矩形を描画する方法

これらの基本的な命令を組み合わせることで、様々な図形や簡単なイラストを描くことができます。座標や色の指定に慣れて、自由に画面をデザインできるようになりましょう!🎨

次のステップでは、SOUNDPLAY 命令を使って、プログラムに音を追加する方法を学びます。お楽しみに! 🎶

参考情報 📚

より詳しい情報や、他のグラフィック命令については、以下のリソースも参考にしてください。

※上記リンクは外部サイトへのものです。リンク先の情報は変更される可能性があります。

コメント

タイトルとURLをコピーしました