グラフィック機能を使ってみる

コンピュータの画面は、格子状に並んだたくさんのピクセル(点)で構成されています。このピクセルの一部に色をつけると、画面上に点を打ったり、線を引いたりといったことができるわけです。今回は、99BASICのグラフィック機能で画面上にいろいろいたずら描きをして遊んでみましょう。

最初に、CLSで画面をクリアしてから、以下の文を実行してみてください。

PSET(64, 64), 255

99BASICのウインドウの左上の方に目を凝らすと、白い点が見えると思います。このPSETは、指定の位置(座標、X, Y)のピクセルを指定の色番号の色にする、というもので、この場合は(64, 64)の位置のピクセルを255番の色にするわけです。位置を指定する座標は、画面の一番左上が(0, 0)で、ここから右に行くほどX座標が増え、下に行くほどY座標が増えます。99BASICのウインドウ全体では、最初640 * 400ピクセルになっているようですので、(64, 64)だと左上の方になるわけですね。

99BASICで使う色は、0-255の色番号で指定します。この色番号は、自分で何番にはこの色、と設定することもできますが、最初の状態では255に白が入っていると思います。といっても、実際にどんな色が使えるのか、わからないと遊びにくいので、0-255の色を順番に出してみましょうか。

まず、0-255という「数字」を「順番」に使うわけですから、色番号は変数に入れると楽になりそうですね。処理としては、

  1. 変数Iに0を代入
  2. 座標(I, 100)のピクセルにI番の色をつける
  3. Iを一つ増やす
  4. I < 256(3で1増やされているので)なら2に戻る

といった感じでしょうか。これをプログラムにすれば、以下のようになります。

10 I = 0
20 PSET(I, 100), I
30 I = I + 1
40 IF I < 256 THEN GOTO 20

RUNしてみると、一直線に色がついた線が描かれましたね。これが、99BASICで使える色の一覧です。ただ、さすがに1ピクセルだと色が良くわからないので、一色につき一本線を引いてみましょうか。
線を引くには、LINEという命令を使います。このLINEは、

LINE(X1, Y1)-(X2, Y2), C

とすると、(X1, Y1)から(X2, Y2)まで色番号Cで直線を引きます。さっそく

20 LINE(0, I + 64)-(400, I + 64), I

としてPSETの部分をLINEに置き換え、RUNしてみましょう。今度は、色の帯が描かれましたね。

なお、今回のようにある変数に一定の値を入れてその変数の値を一定値ずつ増やしてある値になるまで処理を繰り返すような場合、FOR文というものを使うこともできます。このFOR文は、

FOR I = 0 TO 255
 Iを使った処理
NEXT

とすると、Iの値が0から255まで順番に変化し、そのIの値を使って処理を行うことができます。このFOR文を使うと、自分でIの値を増やしたり、IF文で戻ったりという処理を書かなくても良い分、プログラムをすっきりさせられるでしょう。このFOR文で先ほどのプログラムを書き直してみます。

まず、

NEW

と入力し、リターンキーで、現在のプログラムを消します。続いて、表示されている帯が邪魔なので、これも

CLS(3)

として消してしまいましょう。続いて、以下のようなFOR文を使ったプログラムを入力してください。

10 FOR I = 0 TO 255
20 LINE(0, I + 64)-(400, I + 64), I
30 NEXT

RUNすると、先ほどと同じ帯が描かれましたね。

BASICの部屋