UI_FreeVertItem ¶
<task pointer> = UI_FreeVertItem( <parent pointer>, <order>, <x>, <y>, "<asset>", <vertices array>) <vertices array> = { <x0>, <y0>, -- left top <x1>, <y1>, -- right top <x2>, <y2>, -- right bottom <x3>, <y3> -- left bottom }
引数 ¶
- <parent pointer> 親UIのポインタ
- <order> 表示プライオリティ
- <x>, <y> 表示座標
- <asset> 表示に使用する画像assetのパス。nilを指定するとテクスチャ無しで白単色での描画になる。
- <vertices array> 頂点配列。4頂点を画像左上から時計回りに指定。
戻り値 ¶
- <task pointer> 生成された UI_FreeVertItem タスクのポインタ
解説 ¶
4つの頂点座標を自由に設定できる四角形を描画する。 画像assetを指定した場合、そのテクスチャが使用されるが、assetとしてnilを指定した場合は白単色の四角形となる。
実際は三角形を二つ組み合わせて描画(右上と左下を結ぶ対角線で分割)しているため、 頂点の位置関係により凹となる頂点が生じた場合は正しく描画されない。必ず各頂点が凸となるような位置関係で指定する必要がある。
コマンド ¶
- UI_FREEVERT_SET_VERTICES
-
頂点を再設定する。
- UI_FREEVERT_SET_VERTICES
pFVI= UI_FreeVertItem(...) sysCommand(pFVI, UI_FREEVERT_SET_VERTICES, <vertices array>) <vertices array> = { <x0>, <y0>, -- left top <x1>, <y1>, -- right top <x2>, <y2>, -- right bottom <x3>, <y3> -- left bottom }
- UI_FREEVERT_SET_VERTICES
- UI_FREEVERT_SET_COLORS
-
4つの頂点カラー(RGBA)を配列で与え、同時に設定する。
頂点カラーにはデフォルトで 0xff(alpha)+0xffffff(RGB) が与えられているが、これを変更できる。
- UI_FREEVERT_SET_COLORS
pFVI= UI_FreeVertItem(...) sysCommand(pFVI, UI_FREEVERT_SET_COLORS, <color array>) <color array> = { <alpha0>, <rgb0>, -- ex) 0xff, 0xffffff, <alpha1>, <rgb1>, <alpha2>, <rgb2>, <alpha3>, <rgb3> }
- UI_FREEVERT_SET_COLORS
- UI_FREEVERT_SET_VERT_COL
-
頂点カラーを個別に設定する。カラーを変更する頂点はインデックスで指定される。
- UI_FREEVERT_SET_VERT_COL
pFVI= UI_FreeVertItem(...) sysCommand(pFVI, UI_FREEVERT_SET_VERT_COL, <idx>, <alpha>, <rgb> ) <idx>: 左上を 0 とし、時計廻りに増加。
- UI_FREEVERT_SET_VERT_COL
UI_FREEVERT_SET_UV::
4つの頂点についてUV値を同時に設定する。
- UI_FREEVERT_SET_UV
pFVI = UI_FreeVertItem(...) sysCommand(pFVI, UI_FREEVERT_SET_UV, <UV array>) <UV array> = { <u0>, <v0>, -- left top <u1>, <v1>, -- right top <u2>, <v2>, -- right bottom <u3>, <v3> -- left bottom } ※各UVは、指定された画像内の幅、高さを 0.0~1.0で正規化した値。テクスチャアトラス内(.texb)の正規化座標ではないことに注意。