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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
初心者_T

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

#1

投稿記事 by 初心者_T » 16年前

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

nayo

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

#2

投稿記事 by nayo » 16年前

キャラの中心を(x,y)、向きをangle(ラジアン)、
キャラの中心から発射位置までの直線距離をrとすると発射位置は

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

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

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

初心者_T

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

#3

投稿記事 by 初心者_T » 16年前

 親切な回答、ありがとうございました。
 おかげで次の段階に進むことができそうです。
 角度を変更すれば違う場所からでも発射が利きますしね。

閉鎖

“C言語何でも質問掲示板” へ戻る