[過去ログ]
delphiでMMO (154レス)
delphiでMMO http://peace.5ch.net/test/read.cgi/gamedev/1072515100/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
91: 名前は開発中のものです。 [sage] 04/07/08 01:54 ID:24Kakk+0 ふむう、、 やっぱキー操作が無難なのかなぁ・・ もうちょっと頑張ってみます・・ 経路探索は前にソースを手に入れてたので少し改良すれば使えそうな気がします。 http://peace.5ch.net/test/read.cgi/gamedev/1072515100/91
92: 91 [sage] 04/07/10 14:06 ID: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 http://peace.5ch.net/test/read.cgi/gamedev/1072515100/92
95: 91 [sage] 04/07/11 05:18 ID:W4Smg9NF いろいろやってみました。 んで表示は出来るようになったのですが、どうも位置が合わないです・・ ソースUPしたので、もしよろしければ見てみてください。 お願いします。 http://gamdev.org/up/img/827.zip http://peace.5ch.net/test/read.cgi/gamedev/1072515100/95
97: 91 [sage] 04/07/14 11:05 ID:PzgWFfKg なんとなくそれっぽい感じになりますた、根本的に違うかも・・ // クライアント座標から-1.0〜1.0に変換 half.X := (ClientWidth div 2); half.Y := (ClientHeight div 2); pos.x := ((pos.x - half.X)/(ClientWidth)); pos.y := - ((pos.y - half.Y)/(ClientHeight)); //適当にそれっぽい値にする pos.x := pos.x * ((1+pos.Z)); pos.y := ((pos.y * Scene.FovH)*(1+pos.Z))/2;// // プロジェクションマトリクスで座標変換します。 pos:=NowTransform(pos, NowInvMatrix(Scene.ProjectionMatrix)); testFigure2.Figure.TopFrame.SetTranslation(Camera ,pos); これで適当なZ値で2点を取ってその直線に交差する平面を探せば良いのかな? DirectXにD3DXIntersectって関数があるらしいけどQDの場合は自前でやるしかないのかなぁ・・ http://peace.5ch.net/test/read.cgi/gamedev/1072515100/97
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.007s