BGOFS

プチコン3号 プチコンBIG 

BGレイヤーの表示座標を指定・取得

座標を指定 BGOFS layer[,x,y][,z] 座標を取得 BGOFS layer OUT [vx,vy][,vz]

パラメーター

layerBGレイヤー番号(0~3)
x,y,z指定座標(x,yは原点からの相対位置)

戻り値

vx,vy,vz現在の座標(x,yは原点からの相対位置)

解説

BGレイヤーの「表示座標」を指定・取得します。

座標x,y原点からの相対座標で、単位は「ドット」。
xを加算するとBG画面が左に、
yを加算するとBG画面が上に移動します。

座標zは通常の奥行き値(-256~1024(奥))です。
(原点はBGHOME参照(初期値(0,0))

座標を指定する場合、(x,y)かz、最低どちらか1つを指定する必要があります。
x=0,y=0のとき、原点座標=レイヤーの左上座標となります。
xにプラスを指定するとBG画面は原点より左に、yをプラスに指定するとBG画面は原点より上に移動します。

座標の取得も同じく、(vx,vy)かvz、のどちらか1つは戻り値の変数を指定する必要があります。


サンプルコード

座標の指定
BGOFS 0,-50         'Z座標のみ指定
BGOFS 0,100,100     'X,Y座標を指定
BGOFS 0,100,100,-50 'X,Y,Z座標を指定
座標の取得
BGOFS 0 OUT Z     'Z座標のみ取得
BGOFS 0 OUT X,Y   'X,Y座標を取得
BGOFS 0 OUT X,Y,Z 'X,Y,Z座標を取得
 
上記の「ドラクエ」の例
3DSの上画面が400x240ドットなので中心点は(200,120)。
フィールドサイズを100x100キャラとする。
フィールド中の現在地を(20,20)キャラの位置だとすると、1キャラ16ドットなので、16x20=320で、ドット位置は(320,320)
プログラムは以下のようになる。
'しょきせってい
BGSCREEN 0,100,100 'BGレイヤーのサイズ
BGFILL 0,0,0,99,99,100 '全体を森で埋める
BGPUT 0,20,20,240 '(20,20)の位置に町を置く
DIM X=320,Y=320
 
'がめんいどう
BGHOME 0,200,120
BGOFS 0,X,Y
 
これで画面の中心に町が表示される。移動させるにはBUTTON操作などでX,Yを変えればよい。
(このプログラムだと厳密には、町キャラの左上が中心位置に来てしまうので、BGHOMEに微調整が必要)
 
最終行の「BGOFS 0,320,320」を以下に変えると分かりやすい。(5秒間かけて、320,320まで移動)
BGANIM 0,"XY",-300,X,Y

参照

BGPAGE BGキャラの定義に使用するグラフィックページを指定・取得
BGSCREEN BGレイヤーの大きさを指定
BGCLR BGレイヤーの設定をクリア
BGSHOW BGレイヤーを表示状態にする
BGHIDE BGレイヤーを非表示状態にする
BGCLIP BGレイヤーを表示範囲を指定
BGHOME BGレイヤーの原点を指定・取得
BGOFS BGレイヤーの表示座標を指定・取得
BGROT BGレイヤーの回転角度を変更・取得
BGSCALE BGレイヤーの表示倍率を変更・取得
BGPUT BGレイヤーにキャラクターを配置
BGFILL BGレイヤーの指定範囲を指定キャラで埋める
BGGET BGレイヤーのキャラクター情報を取得
BGANIM BGレイヤーのアニメーションを設定
BGSTOP BGレイヤーのアニメーションを一時停止
BGSTART BGレイヤーのアニメーションを再開
BGCHK BGレイヤーのアニメーション状況を取得
BGVAR BGレイヤー用内部変数の値を設定・取得
BGCOPY BGレイヤーの指定範囲を別の場所にコピー
BGLOAD BGレイヤーに配列変数からデータを読込
BGSAVE BGレイヤーのキャラ配置データを配列変数に格納
BGCOORD BGレイヤー上での座標と画面上の座標を相互変換
BGCOLOR BGレイヤーの色合いを変更・取得
BGFUNC BGレイヤーにコールバック処理を割り当て

Facebookコメント