qaddmodel

自由設定オブジェクト追加

qaddmodel var,shape_var,nvertex,x,y,r,sx,sy,colsw,mygroup,exgroup,loggroup

var      : オブジェクトIDを取得する変数
shape_var: 形状データを代入した配列変数
nvertex(-1) : 形状データの個数
x(0.0)   : 配置X座標(実数)
y(0.0)   : 配置Y座標(実数)
r(0.0)   : 配置角度(実数)(単位はラジアン)
sx(10.0) : 配置Xサイズ(実数)
sy(10.0) : 配置Yサイズ(実数)
colsw(1) : 配置チェックのモード
mygroup(1)  : 自分が属するコリジョングループ
exgroup(0)  : 衝突を除外するグループ
loggroup(0) : コリジョンログを作成するグループ

(プラグイン / モジュール : obaq)

解説

OBAQに自由設定された形状のオブジェクトを追加します。
一般的な多角形は、qaddpoly命令によって生成することができます。
qaddmodel命令では、頂点を個別に指定することでより自由な形を登録することができます。
shape_varに、形状データを代入した配列変数を指定する必要があります。
配列変数には、x1,y1,x2,y2…の順番に座標を格納しておいてください。
座標は、必ず左回り(反時計回り)で指定し、凸面体でなければなりません。
1つのオブジェクトに複数の凸面体を内包させることも可能です。
その場合は、左回りで指定する座標の最後を、最初の座標と同一にして閉じた形にした後で、
新しい別な形の座標を指定するようにしてください。

nvertexでデータの個数(頂点の個数ではありません)を指定します。
nvertexがマイナス値か省略された場合は、配列に設定された要素数が使用されます。
形状データを格納した配列変数には、実数型、整数型のどちらかを使用できます。
規定の頂点数を超えるデータを扱うことはできませんので注意してください。詳しくは、OBAQ.DLLのマニュアルを参照してください。

	;	自由な形状のモデルを追加
	;
	model=-1.0,-1.0, -1.0,2.0, 2.0,1.0, 1.0,-1.0
	qaddmodel i,model,-1, 30,64,0

(x,y)で配置の座標を指定します。(OBAQの内部座標を設定します。)
rで配置角度(+方向が時計周りになります)を指定します。単位はラジアンとなります。
(sx,sy)で、配置時の大きさを指定します。デフォルトでは、(10,10)のサイズが使用されます。
mygroup,exgroup,loggroupはコリジョン(衝突)の検出のために設定されるグループ値になります。
グループ値は、32bitいずれかのビットが1の値(1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768…)によって示されます。
colswで配置チェックのモードを選択することができます。

	モード        値	内容
------------------------------------------------------------------------
	colsw_none     0        出現時コリジョンチェック無し
	colsw_active   1        出現時active状態の岩との接触を避ける
	colsw_all      2        出現時reserve状態以外の岩との接触を避ける

オブジェクトが正常に追加された時には、varで指定された変数にオブジェクトID値が代入されます。(変数は自動的に整数型となります。)
登録数の限界でオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-1が代入されます。
コリジョン(衝突)検出のためオブジェクトの追加が行なわれなかった場合は、varで指定された変数に-2が代入されます。

関連項目

qaddpoly多角形オブジェクト追加(obaq)

サンプル逆引き (4)

obaqme.hsp
qvbtest.hsp
test6.hsp
tof2.hsp

情報

プラグイン / モジュールobaq
バージョン3.21
作成日2010/01/15
著作者onitama
URLhttp://hsp.tv/
備考obaq.asをインクルードすること。
タイプ拡張命令
グループ拡張入出力制御命令
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\obaq.hs