delphiでMMOat GAMEDEVdelphiでMMO - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト91:名前は開発中のものです。 04/07/08 01:54 24Kakk+0 ふむう、、 やっぱキー操作が無難なのかなぁ・・ もうちょっと頑張ってみます・・ 経路探索は前にソースを手に入れてたので少し改良すれば使えそうな気がします。 92:91 04/07/10 14:06 mnKwxbw9 3D座標を2D座標にするのは // ワールドマトリクスで座標変換します。 pos := Figure.TopFrame.LocalToWorld(testFigure.TopFrame.GetTranslation(testFigure.TopFrame)); Hgpos := NowHomoginize(pos); // ビューマトリクスで座標変換します。 Hgpos:=NowTransform(Hgpos, NowInvMatrix(Camera.WorldMatrix)); // プロジェクションマトリクスで座標変換します。 Hgpos:=NowTransform(Hgpos, (Scene.ProjectionMatrix));//ScreenMatrix // ビューポート情報からクライアント座標を取得します。 Hgpos.x := (Hgpos.X / Hgpos.W * 800 / 2) +800 / 2; Hgpos.y := -(Hgpos.Y / Hgpos.W * 600 / 2) +600 / 2; これで出来たっぽい 2D座標を3D座標にするのはこれの逆をやればよいから・・・ こうか?? pos.X := マウス座標X; pos.Y := マウス座標Y; pos.Z := 1; //W付きに変換 Hgpos := NowHomoginize(pos); // クライアント座標からビューポート情報を取得します。 Hgpos.x := (Hgpos.X -800 / 2) * Hgpos.W/(800 * 2); Hgpos.y := -(Hgpos.Y -600 / 2)*Hgpos.W/(600 * 2); // プロジェクションマトリクスで座標変換します。 Hgpos:=NowTransform(Hgpos, NowInvMatrix(Scene.ProjectionMatrix)); // ビューマトリクスで座標変換します。 Hgpos:=NowTransform(Hgpos, (Camera.WorldMatrix)); pos := NowHeteroginize(Hgpos); testFigure.Figure.TopFrame.SetTranslation(Camera ,pos); 出来ない _no 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch