2Dの全方位シューティングで画面アングルを変更したいです。
Posted: 2011年10月26日(水) 21:54
2Dの全方位シューティングで画面の上下左右スクロールを作ったのですが
臨場感にかけていたので画面のアングルを自機に依存するようにしたいです。
添付されている画像を見てもらえればわかると思いますが
中心の右上に向いている自機が敵や味方との相対座標や現在の絶対座標をそのままに上をむくようにしたいのです。
そうすると、あらゆるオブジェクト(ユニット、弾など)を自機の角度に依存した座標で描画することになります。
しかし、例えば自機が回転するとそれにあわせて太陽や月みたいにクルクル回るコードが思いつきません。
アドバイスをお願いします。
※window_coordinate.xとwindow_coordinate.yは描画基準座標です。この2つを描画時にあらゆるオブジェクトの座標から引きます。
臨場感にかけていたので画面のアングルを自機に依存するようにしたいです。
添付されている画像を見てもらえればわかると思いますが
中心の右上に向いている自機が敵や味方との相対座標や現在の絶対座標をそのままに上をむくようにしたいのです。
そうすると、あらゆるオブジェクト(ユニット、弾など)を自機の角度に依存した座標で描画することになります。
しかし、例えば自機が回転するとそれにあわせて太陽や月みたいにクルクル回るコードが思いつきません。
アドバイスをお願いします。
void window_main(){
if(unit_status[0].unit_member[0].flag==1){//status[0].mem[0](つまり自機)が生きていたらウィンドウ幅/2だけプレイヤー座標から引き、それを現在の描画基準座標とする。
window_coordinate.x = unit_status[0].unit_member[0].x - X_WINDOW_MAX/2;
window_coordinate.y = unit_status[0].unit_member[0].y - Y_WINDOW_MAX/2;
}else{//死んでる場合は適当に生きている味方ユニットを探索して表示する。全滅していた場合はしらない。
for(int i=UNIT_MEMBER_MAX;0<=i;i--){
window_coordinate.x = unit_status[0].unit_member[i].x - X_WINDOW_MAX/2;
window_coordinate.y = unit_status[0].unit_member[i].y - Y_WINDOW_MAX/2;
if(unit_status[0].unit_member[i].flag==1)break;
}
}
}