ワールド座標から画面座標への変換 ConvWorldPosToScreenPos()について

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

ワールド座標から画面座標への変換 ConvWorldPosToScreenPos()について

#1

投稿記事 by カル » 12年前

3次元上にある敵の座標EnemyPositionが、画面から消えた時の処理をしたく、下記のコードを作ってみたのですがイマイチうまく判定されません。

コード:

VECTOR ScreenPos = ConvWorldPosToScreenPos(EnemyPosition);
if(0.0f > ScreenPos.z || ScreenPos.z > 1.0f){
	if(0.0f> ScreenPos.x || ScreenPos.x > X_WINDOWSIZE){
		if(0.0f> ScreenPos.y || ScreenPos.y > Y_WINDOWSIZE){
//画面外に敵が居る!!
		}
	}
}
ちなみに、此方の敵が画面内に存在する、という判定は正常に判定できました。
もしかしたら表面化してないだけで画面外でも処理を行ってしまってるかもしれませんが・・・

コード:

VECTOR ScreenPos = ConvWorldPosToScreenPos(EnemyPosition);
if(0.0f < ScreenPos.z && ScreenPos.z < 1.0f){
	if(0.0f < ScreenPos.x && ScreenPos.x < X_WINDOWSIZE){
		if(0.0f < ScreenPos.y && ScreenPos.y < Y_WINDOWSIZE){
//画面内に敵が居る!!
		}
	}
}

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: ワールド座標から画面座標への変換 ConvWorldPosToScreenPos()について

#2

投稿記事 by h2so5 » 12年前

条件式がおかしいです。これだとx座標が画面外でもy座標が画面内にあると、敵が画面内にいるという判定になってしまいます。

カル

Re: ワールド座標から画面座標への変換 ConvWorldPosToScreenPos()について

#3

投稿記事 by カル » 12年前

おお!条件式を1つにまとめてorでくっつけたらできました!
ありがとうございます!

閉鎖

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