例:マップ作成表示

プチコン3号 プチコンBIG 

BG画面(背景・マップ)の作成

解説

ゲームの背景を作成し表示するサンプルです。
ドラクエのマップや、スーパーマリオの地面・ブロック・土管、倉庫番のようなパズルゲームの面などがこれに該当します。

背景キャラは「バックグラウンド画面」に表示され、命令文は「BG〜」で始まるものを使用します。
BG用コマンドの一覧は、バックグラウンドの命令一覧を参照。

サンプルコード

マップの表示方法

大きく分けて2つの方法があります。
 A.ツールを使ってタッチペンで描いて保存し、それをプログラムで読み込む方法
 B.プログラムだけで描写する方法
A.はドラクエやスーパーマリオのような大きいマップ向き、B.はパズルゲームの面データなどに向いていますが、どちらを使うかは自由です。

A.ツールを使用した表示方法

マップの作成と、ファイルへの保存
キーボードの「SMILE」ボタンでツールを開き、画面右上の「マップ」を選択してマップエディタを開いて、背景を描きます。
そして、描いたマップをファイルに保存します。
下画面・上部の「SCSAVE」を押して、名前を付けて保存します。(ここでは「TEST」とします)
 ※実際には「SC_TEST_L0」〜「SC_TEST_L3」までの4つのファイルが作成されます。
 ※画面下の「SAVE」だと別の形式で保存されてしまうので、ここでは「SCSAVE」の方で保存してください。
マップの読込と表示
プログラムから、先ほど保存したファイルを呼び出して画面に表示します。
DIM D[0]
BGSCREEN 0,64,64 '背景サイズ
LOAD "DAT:SC_TEST_L2",D,0 '読み込み
BGLOAD 0,0,0,64,64,D '画面に描写
ツールで描いた背景は64x64のサイズなのに対し、実行画面の初期値は25x15とサイズが違うので、同じにする必要があります。
LOADで読み込んだデータを、用意した配列変数「D」に一時保存し、それをBGLOADで実際に画面に描写します。
 
※マップデータを再編集したい場合は、マップエディタ画面で Yボタン→Aボタンで「LOAD」を選択→Xボタンで「BGSCREENデータ」を選択した後、
保存したファイル名(ここでは「TEST」)を入力してデータを呼び出してください。
 注:画面下にある「LOAD」は別形式専用なので、ここではロードできません。

B.プログラムで描画する

任意の背景キャラを表示する
BGPUT 0,3,3,18
横3,縦3の位置に、「18」の将棋のコマを表示します。キャラクターの番号は、SMILEツールを起動して、画面下の「BG」で確認できます。
マップデータを一括表示
横6x縦5の迷路を画面に表示させます。
数値データを使う例
MX=6:MY=5
DIM C[MX*MY]
RESTORE @STAGE_DATA 'データを読み取る場所を指定
FOR I=0 TO MX*MY-1
READ C[I]  'データ読込
BGLOAD 0,0,0,MX,MY,C '画面に描写
 
@STAGE_DATA 'BGデータ
DATA 2,2,2,2,2,2
DATA 2,4,0,0,0,2
DATA 2,2,0,2,0,2
DATA 2,0,0,2,0,2
DATA 2,2,2,2,2,2
配列変数Cに、DATAに記載されたデータを一件ずつ読み取り、全て読み込んでからBGLOADで画面に描いています。
「A.ツールを指定した表方法」でも、内部的にはこれと同じような事をしています。データを外部ファイルに置くか、DATAに描くかの違いです。
文字データを使う例
RESTORE @STAGE_DATA 'データを読み取る場所を指定
FOR I=0 TO 4
READ D$  '行データ読込
FOR J=0 TO 5
  IF D$[J]=="@" THEN 'キャラ判定
   C=2
  ELSEIF D$[J]=="1" THEN C=4
  ELSE C=0
  ENDIF
  BGPUT 0,J,I,C '画面に表示
 
@STAGE_DATA 'BGデータ
DATA "@@@@@@"
DATA "@1   @"
DATA "@@ @ @"
DATA "@  @ @"
DATA "@@@@@@"
ループ「I」で変数D$に一行分ずつデータを読み込み、ループ「J」で1文字ずつ判定・表示しています。

参照

サンプルについて サンプルコードについての解説
例:文字の表示 文字の表示・位置指定・色指定
例:キャラ操作(1) スプライトキャラの表示・移動
例:キャラ操作(2) スプライトキャラのジャンプ・移動制限・アニメーション
例:マップ作成表示 BG画面(背景・マップ)の作成

Facebookコメント