PIC パターン

Jasmine Tea では、様々な命令を使ってグラフィック画面に図形を描くことができます。提供されている命令は、点や線、円を描くといった基本的な図形の描画のみです。それらを駆使して思い通りのコンピューターグラフィックを描くことができる一方で、描きたいものによっては、もっと効率の良い仕組みが求められます。

例えば、ゲームで主人公のキャラクターが歩き回ったりする場所を考えてみましょう。その場所を、点、線、円、四角などの図形で描いていくプログラムを作ることは、とても大変なことです。また、ゲームによっては、実行画面の大きさを大きくはみ出る、かなり広い場所を作ることも必要となり、その場所を基本的な図形のみで描いていくのは、現実的ではありません。

その代わりに、小さな大きさの四角形の絵をいくつか作っておいて、グラフィック画面にそれらをタイル状に並べていきます。基本的な図形を組み合わせてグラフィック画面に描いていくプログラムに比べて、予め決められた小さな絵を並べていくプログラムは単純です。

Jasmine Tea では、横 16、縦 16 の大きさの四角形(PIC パターンと呼びます)の絵を登録することができます。プログラムの中ですぐに利用できるように、Jasmine Tea には 532 個のPIC パターンが予め登録されています。

以下は、登録されている PIC パターンの一覧です。横軸の数字と縦軸の数字の組み合わせで、PIC パターン番号が決まります。例えば、横軸が 12、縦軸が 80 であれば、足し算をした結果(80+12)の 92 が PIC パターンとなります。

pics-1

pics-2

pics-3

既に登録済みの PIC パターンは、以下の2種類があります。

  • キャラクターとして使用する目的の PIC パターン
  • 背景などに使用する目的の PIC パターン

PIC パターンをグラフィック画面に表示するには、put 命令を使います。487 番の PIC パターンを put 命令で表示する、および box 命令で同様の図形を表示するプログラム例が以下となります。

box (150,150)-(150+5,150+15),22,22
box (156,150)-(156+3,150+15),7,7
box (160,150)-(160+5,150+15),22,22

put (200,150),487

pics-4

全く同じ図形を描くことができていますが、box 命令の場合は、3回の呼び出しが必要なのと、座標の指定や色の指定が複雑です。それに対して、put 命令では、PIC パターンを表示したい座標と PIC パターンの番号をパラメーターとして指定するだけです。

PIC パターンは、主に以下のような使い方となります。

  • PIC パターンをいくつか組み合わせて、スプライトを使ってキャラクターを表示する。
  • PIC パターンをいくつも組み合わせて、背景を作って表示する。
  • put 命令を使って、グラフィック画面に自由に PIC パターンを表示する。

登録済みの PIC パターンだけでなく、プログラムから独自の PIC パターンを登録して利用することができます。PIC パターンを新規に登録するために、def pic 命令を使います。以下は、def pic 命令を使って、ハートマークの PIC パターンを登録する例です。

p@=[]
for i=0 to 255
  read p@[i]
next
def pic 532,p@
put (100,100),532
end
data -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
data -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
data -1,-1,-1, 3, 3,-1,-1,-1,-1,-1,-1, 3, 3,-1,-1,-1
data -1,-1, 3, 3, 3, 3,-1,-1,-1,-1, 3, 3, 3, 3,-1,-1
data -1,-1, 3, 3, 3, 3, 3,-1,-1, 3, 3, 3, 3, 3,-1,-1
data -1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-1
data -1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-1
data -1,-1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-1,-1
data -1,-1,-1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-1,-1,-1
data -1,-1,-1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,-1,-1,-1
data -1,-1,-1,-1, 3, 3, 3, 3, 3, 3, 3, 3,-1,-1,-1,-1
data -1,-1,-1,-1,-1, 3, 3, 3, 3, 3, 3,-1,-1,-1,-1,-1
data -1,-1,-1,-1,-1,-1, 3, 3, 3, 3,-1,-1,-1,-1,-1,-1
data -1,-1,-1,-1,-1,-1,-1, 3, 3,-1,-1,-1,-1,-1,-1,-1
data -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1
data -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1

pics-5

PIC パターンは横 16, 縦 16 の大きさなので、256 個の色の番号を配列として作成します。色の番号は、左上から右方向に順に指定します。そして、def pic 命令に PIC パターンの番号と配列をパラメーターとして指定することで、その PIC パターン番号に新しい PIC パターンが登録されます。もし指定された PIC パターン番号に対して既に PIC パターンが登録されていたときは、新しい PIC パターンで置き換えられます。