Re: CheckCameraViewClipについて ( No.1 ) |
- 名前:いっち 日時:2012/11/03 23:24
> CheckCameraViewClip関数では指定した座標が画面内、外の判定をしますが、内外だけでなくxyzのどの方向が外なのか確かめることができる方法はありますか?
私の知る限りではありません。
視点とカメラ座標と目的の座標を比較すれば方向は分かると思います。
|
Re: CheckCameraViewClipについて ( No.2 ) |
- 名前:管理人 日時:2012/11/04 00:53
いっちさんも仰られていますが、どの方向の外なのかを取得することはできません
なので機能を追加しました、よろしければこちらのバージョンをダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
以下の関数を追加しました
// 指定の座標がカメラの視界に入っているかどうかを判定する、戻り値で外れている方向も知ることができる
//
// 戻り値 0:視界に入っている
// 0以外:視界に入っていない
// ( DX_CAMERACLIP_LEFT や DX_CAMERACLIP_RIGHT が or 演算で混合されたもの、and 演算で方向を確認できる )
int CheckCameraViewClip_Dir( VECTOR CheckPos ) ;
引数は CheckCameraViewClip と同じくチェックしたい3D座標です
戻り値が CheckCameraViewClip とは違い、外れている方向の値の組み合わせです
以下の define 定義されている値が組み合わさります
// クリッピング( 外れ )方向
#define DX_CAMERACLIP_LEFT (0x01) // 画面左方向にクリップ
#define DX_CAMERACLIP_RIGHT (0x02) // 画面右方向にクリップ
#define DX_CAMERACLIP_BOTTOM (0x04) // 画面下方向にクリップ
#define DX_CAMERACLIP_TOP (0x08) // 画面上方向にクリップ
#define DX_CAMERACLIP_BACK (0x10) // 画面後方向にクリップ
#define DX_CAMERACLIP_FRONT (0x20) // 画面前方向にクリップ
GetJoypadInputState の戻り値で、どのボタンが押されているかを PAD_INPUT_LEFT などの値と & 演算を使って
if( ( PadInput & PAD_INPUT_LEFT ) != 0 )
{
// 方向ボタン左が押されている
}
このように判定しますが、それと同じで CheckCameraViewClip_Dir の戻り値を
int result = CheckCameraViewClip_Dir( position ) ;
if( ( result & DX_CAMERACLIP_LEFT ) != 0 )
{
// 画面左方向に見切れている
}
if( ( result & DX_CAMERACLIP_RIGHT ) != 0 )
{
// 画面右方向に見切れている
}
if( ( result & DX_CAMERACLIP_TOP ) != 0 )
{
// 画面上方向に見切れている
}
このように DX_CAMERACLIP_LEFT などの値と & 演算して、0ではなかったらその方向に
見切れている、というような判定の仕方をします
( 戻り値が0だった場合は座標は画面内に収まっているということになります )
よろしければお使いください
|
Re: CheckCameraViewClipについて ( No.3 ) |
- 名前:ジャム 日時:2012/11/04 21:35
いっちさん、管理人さん回答ありがとうございます。
関数の機能の追加本当に助かります。
早速ダウンロードさせていただきました。
これで順調に組んで行くことができそうです。
ありがとうございました。
|