初心者のためのゲームプログラミング入門

プログラミングとゲームの杜

初心者のためのプログラミング入門 & ゲームプログラムの作り方入門

文系でもわかるBASIC入門

15.グラフィック機能を使ってみよう

このBASIC言語の特徴として、グラフィック機能があります。
簡単に言ってしまうと絵を描く機能です。
シンプルな絵を描くことしかできませんが、コンピュータの命令を使って
どのような絵が描けるのか、また、どのように描くのかを学習してみましょう。

 

1. CIRCLE命令で円を描く

まず、プログラムと実行結果を見て下さい。

basic グラフィック機能を使う

basic circle 円を描く

行番号20 で左の白い円を、行番号30 で右の赤い円を描いてます。
CIRCLE命令のパラメータは次の通り。

CIRCLE (座標x,座標y),半径,線の色,開始角度,終了角度,比率,F,塗り色

行番号20 では、線の色以降を省略しています。そのため線の色がデフォルト色である
白となってます。
行番号30 では、線の色に2を指定しています。
色の設定が
0:黒 1:青 2:赤 3:紫 4:緑 5:水色 6:黄 7:白
となっているため、赤色で描かれてます。

 

表示する座標についてです。

basic 描画領域について

グラフィックの描画領域はドット(小さな点)の集まりで
横640ドット、縦400ドットで構成されています。

基準点は画面左上で、右に向かってx座標、下に向かってy座標が増えていきます。

行番号30 をもう一度見てみましょう。

CIRCLE (200,100),50,2

これはx座標 200、y座標 100 の位置を中心として半径50ドットの円を赤色で描く
という意味です。
サンプルプログラムでパラメータを変更し、どのようになるか色々と試しましょう。

 

2. グラフィックを消す CLS命令

先程のサンプルにより円を描いた状態で、LIST命令を実行してみます。

basic cls グラフィックを消す方法

グラフィック画面に描かれた円とは関係なく、プログラムが表示されます。
この状態でCLS命令を実行してみて下さい。
表示されていたプログラムが消えたと思います。

ここで重要なのは、プログラムなどを表示するテキスト画面と
絵を表示するグラフィック画面は別々に管理されている
ということです。

CLS命令には次のような機能があります。

使い方 動 作
CLS テキスト画面をクリアする
CLS 2 グラフィック画面をクリアする
CLS 3 テキストとグラフィック画面をクリアする

 

3. グラフィックは上書きされる

basic グラフィック画面の特徴

円を描く時の座標指定を見て下さい。

CIRCLE(50+I*20,50),30,I

x座標を、50 の位置から 20 ずつ加算しながら描画しています。
これで右にズレながら円が表示される訳です。
実行結果をよく見ると、円は上書きされています。
塗り色を指定した円を見ると、はっきり分かります。

上書きされる性質を活かして、絵を描く時は
表示優先が低いものほど先に描くようにします。

 

4. LINE命令で線を描く

basic line 線を描く

LINE命令のパラメータは次の通り。

LINE (x1,y1)-(x2,y2),線の色,B(またはBF),塗り色

x1 y1 が開始座標、x2 y2 が終了座標となります。
B を指定するとBox描画になり、BF を指定するとBoxの中が塗られた状態になります。

行番号20 と 30 を見て下さい。
B 指定がされていない為、線で描画されてます。

LINE命令にはもう1つ別の指定方法があります。

basic line 線をつなぐ

行番号30 以降に注目して下さい。
開始座標の指定がありません。
この場合、前回の終了座標から描画が始まります
一筆書きの要領で何かを描くには、こちらの方が便利です。

 

5. PSET命令で点(ドット)を描く

basic pset 点を描画する

PSET命令のパラメータは次の通り。

PSET (座標x,座標y),点の色

座標xyに点を表示します。

 

6. 今後の学習方法について

今までいくつかの命令や関数を説明してきました。
まだ説明していない命令も沢山有ります。
命令すべてを説明できないのは残念なのですが
あまり意味の無いことだとも思ってます。

なぜなら、実際に使う命令は限られているからです

プログラムは組む目的によって使う命令が変わってきますし、
どの命令が重要なのか特定することもできません。
プログラミングしながら使えそうな命令を探したり、作りながら命令の詳細を調べる
というのが現実的な方法です。

 

今後もサンプルプログラムを使って説明を続けますが
それを改造する習慣を身に付けて下さい。
その時、使われている命令の詳細を調べてみると、意外と便利な使い方が
見つかるかもしれませんよ。