こんにちは、私はVC++2008EEとDXライブラリ、WinXPでプログラムをしています。
・SetCameraPositionAndTarget_UpVecY
・SetCameraPositionAndTargetAndUpVec
この二つを使って3Dの背景を描画したゲームを作っています。
1ステージでこれらの関数を使い、2ステージでこれらの関数を使わなかった場合、
背景が1ステージで設定したカメラ視点になってしまいます。
1ステージでは
--------------------------------------------------------------------
SetCameraPositionAndTarget_UpVecY( VGet( 320.0f, 240.0f , 0.0f )),
VGet( 320.0f, 150.0f , 0.0f ) ) ;
SetCameraPositionAndTargetAndUpVec(
VGet( 320.0f, 240.0f , 0.0f ) ),
VGet( 320.0f , 150.0f , 100.0f ) ,
VGet( sin( camera.roll_sin_value ), cos( 0.0f ), 0.0f ) ) ;
--------------------------------------------------------------------
という設定をしていて、2ステージでは何も設定していないという状態です。
デフォルトの設定はリファレンスによれば
x = 320.0f, y = 240.0f, z = ( 画面のサイズによって変化 )、
注視点の位置は x = 320.0f, y = 240.0f, z = 1.0f、
カメラの上方向は x = 0.0f, y = 1.0f, z = 0.0f、
とあったので、
1ステージ終了後、
--------------------------------------------------------------------
SetCameraPositionAndTarget_UpVecY( VGet( 320.0f, 240.0f , 0.0f ) ) ,
VGet( 320.0f, 240.0f , 1.0f ) ) ;
SetCameraPositionAndTargetAndUpVec(
VGet( 320.0f, 240.0f , 1.0f ) ),
VGet( 320.0f , 240.0f , 1.0f ) ,
VGet( sin( 0.0f ), cos( 1.0f ), 0.0f ) ) ;
--------------------------------------------------------------------
と初期化を行って2ステージに遷移させましたが、
カメラの視点がおかしくなり、
この関数で初期化していない時と
2ステージの画面の見え方が異なりました。
上記二つを初期化する方法はあるのでしょうか?
説明が足りなかった場合は追加致します。
どうかよろしくお願いいたします。