ページ 11

画像が回転したときの弾の発射位置

Posted: 2009年2月13日(金) 22:13
by 初心者_T
 今回ゲームプログラミングの館を参考にしてちょっとしたゲームを作ろうと思ったのですが、弾を発射する位置について困りました。
 というのも、DrawRotaGraphを利用してキャラクターを回転できるようにしたのですが、その際弾を発射する位置をいつも正面にする方法が分からないのです。
 画像を回転した後の座標を求める方法はありますでしょうか?(つまり画像の人物の頭にあたる座標が、回転後の頭はどの座標にあたるのか)
 回転の仕方は、
if(Key[KEY_INPUT_A]==1){
    ch.angle += PI / 180;
}
のようにangleを変えて、DrawRotaGraphに入れて見ました。
 常に正面からというのはDrawRotaGraph2を使えば実現できるのでしょうか。よろしくお願いします。
 

Re:画像が回転したときの弾の発射位置

Posted: 2009年2月13日(金) 23:43
by nayo
キャラの中心を(x,y)、向きをangle(ラジアン)、
キャラの中心から発射位置までの直線距離をrとすると発射位置は

発射位置x:x + r * cos(angle-PI/2)
発射位置y:y + r * sin(angle-PI/2)

※ただし正面向きを angle = 0、PI = 3.141592... とする

でいいんじゃないでしょうか

Re:画像が回転したときの弾の発射位置

Posted: 2009年2月14日(土) 11:32
by 初心者_T
 親切な回答、ありがとうございました。
 おかげで次の段階に進むことができそうです。
 角度を変更すれば違う場所からでも発射が利きますしね。