【初心者歓迎】スレを立てる前にココで質問を【Part6】
166 :
名前は開発中のものです。:
3D空間でマウスでクリックした位置までキャラを歩かせたいのですが、
どうすれば良いのでしょうか。
地面とキャラはXファイルを読み込んでいます。
マウスのスクリーン座標をD3DXVec3Unprojectで3D空間の座標に変換できたのですが
その後どうすればよいのか・・・。
D3DXIntersectを使えばできそうな気もするのですが、法線ベクトルの求め方がわかりません。
ご教授お願いします。
ストラテジゲームの汎用エンジンって何かあったりする?
ノベルゲーで言うNScripter/吉里吉里みたいな感じのヤツ
AOK TCみたいなのをお手軽に作れないかなとか思っているんだけど…
ウィンドウズ標準コントロールの見た目のカスタマイズって
出来ないんでしょうか?
170 :
名前は開発中のものです。:04/09/26 22:13:54 ID:NuSguSMv
>166
そんなの簡単だよ。
XYZの各距離から、直線の距離を求めて、それをってやればいいじゃん。
それとも、簡単にやってれるライブラリ関数でも聞いてるの?
172 :
166:04/09/26 23:49:40 ID:kQXnHxjr
>>169,170
ありがとうございます。
画面座標からワールド座標への変換はできていたのですが、その後がわかりませんでした。
169のリンク先を見て解決することが来ました。
D3DVIEWPORT9 vp;
m_lpD3ddev->GetViewport(&vp);
D3DXVECTOR3 pos = D3DXVECTOR3(m_MousePos.x, m_MousePos.y, 1.0f);
D3DXVec3Unproject(&pos, &pos, &vp, &matProj, &matView, &matWorld);
BOOL hit;
float dis;
D3DXIntersect(m_pMesh, &vecEyePt, &(pos - vecEyePt), &hit, NULL, NULL, NULL, &dis, NULL, NULL);
if (hit) pos = vecEyePt + (pos - vecEyePt) * dis;