[DXライブラリ3D]カメラと主人公の相対座標について
Posted: 2014年8月19日(火) 11:37
以前、
http://dixq.net/forum/viewtopic.php?f=3&t=14539
で同じことを質問して、"ステージの移動範囲は相対座標にするとよい"で、解決としたんですが、
いまいちどうしたらいいのかわからないものがあって、質問します。
X座標を例にすると、
とすると、回転ができなくなります。
180°回転だと、
回転する前→相対で、正常に動く
回転した後→回転をするが、相対座標になってるので、引き戻され、
カメラとプレイヤーが背中合わせになる。
という現状です。
また、逆に相対位置ではなく、独立して動かした場合、
例えば、上のプログラムだと、"Wを押したときcamera.Xも加算される。"や以前の質問だと のようにカメラも付け足す。場合は、180°回転した場合
回転する前→正常
回転した後→回転すると指定位置からずれるので背中合わせになる。
という状態です。
わかりにくいと思うので、イラストも載せます。
結果的には、どういう方法でもいいので、ステージの移動範囲を制御したいです。
イラストは、こちらです。
質問に何かミスがあったらすみません。
http://dixq.net/forum/viewtopic.php?f=3&t=14539
で同じことを質問して、"ステージの移動範囲は相対座標にするとよい"で、解決としたんですが、
いまいちどうしたらいいのかわからないものがあって、質問します。
X座標を例にすると、
camera.X=player.X;//カメラとプレイヤー(主人公)のX座標は、常に同じ
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
while(){
if(Wを押したら){
player.X+=1.0f;
}
if(マウスを動かしたら){
//プレイヤーは、Y軸を中心に回転(回転のプログラムは、長いのでカット)
//カメラは、プレイヤーを中心に回転
}
}
}
180°回転だと、
回転する前→相対で、正常に動く
回転した後→回転をするが、相対座標になってるので、引き戻され、
カメラとプレイヤーが背中合わせになる。
という現状です。
また、逆に相対位置ではなく、独立して動かした場合、
例えば、上のプログラムだと、"Wを押したときcamera.Xも加算される。"や以前の質問だと のようにカメラも付け足す。場合は、180°回転した場合
回転する前→正常
回転した後→回転すると指定位置からずれるので背中合わせになる。
という状態です。
わかりにくいと思うので、イラストも載せます。
結果的には、どういう方法でもいいので、ステージの移動範囲を制御したいです。
イラストは、こちらです。
質問に何かミスがあったらすみません。