イルリッヒたん@Wiki

表示関連1

最終更新:

匿名ユーザー

- view
管理者のみ編集可

ビューポートを使う

<Version 0.12.0>


ビューポートっつうのは上の画面みたいになの。
アクション系のRPGやSIMでこの機能があると結構便利。
ステータスなどを表示させておきたいが、そうすると画面にかぶって邪魔になる、でも閉じると不便なんて時に、ビューポートで余白を作り、そこにステータスなどを置くなんてことができる。

で、その方法だが、とても簡単。
  1. setViewPort() でビューポートを設定。
  2. ビューポート内だけに表示したいものを描く。
  3. setViewPort() でピューポートをスクリーン全体に戻す。
  4. ピューポート外にも表示するものを描く。
  5. 以上。

3のスクリーン全体に戻すってトコ重要。
忘れるとそれ以後、全てのものがビューポート内への描画対象になってしまう。
beginScene() もビューポート内のみ、GUIなどもビューポート内のみへの描画になってしまう。
特にGUIはビューポート内に描いてしまうと、表示と実際の位置関係がおかしくなってしまうので注意。

例:
Driver->beginScene( true, true, SColor( 0, 100, 100, 160 ) );
Driver->setViewPort( rect<s32>( 0, 0, 512, 384 ) );
Scene->drawAll();
Driver->setViewPort( rect<s32>( 0, 0, 640, 480 ) );
Env->drawAll();
Driver->endScene();

上の例ではビューポートを(0, 0, 512, 384)に設定してSceneのオブジェクト(メッシュ類)を描き、ビューポートをスクリーン全体に戻してEnvのオブジェクト(GUI)を描いている。

bool setViewPort( &area )
ビューポートを設定する。
rect<s32> &area ビューポートに設定する範囲。(x1, y1, x2, y2)


名前:
コメント:
添付ファイル
記事メニュー
人気記事ランキング
目安箱バナー