[過去ログ]
delphiでMMO (154レス)
delphiでMMO http://peace.5ch.net/test/read.cgi/gamedev/1072515100/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
98: 名前は開発中のものです。 [sage] 04/07/14 11:20 ID:2soUKVK2 >>97 なんたらプレーンを使うんだ。 http://peace.5ch.net/test/read.cgi/gamedev/1072515100/98
101: 名前は開発中のものです。 [sage] 04/07/17 03:41 ID:ngDElagu >99 Clootie見てみましたがなるべくQDを使って作りたいので今回はパスで >98 なんたらプレーン使ってやってみますた s_pos.Z := 1; >>97の処理 e_pos.Z := 100; >>97の処理 //点startを始点とし、点endを終点とする線分を示します c_LineSeg := LineSeg3D(s_pos,e_pos); //適当にフィールドの代わりを作る p_pos0.x := 150.0; p_pos0.y := 50.0; p_pos0.z := 0.5 ; p_pos1.x := 250.0; p_pos1.y := 250.0; p_pos1.z := 0.5 ; p_pos2.x := 50.0; p_pos2.y := 250.0; p_pos2.z := 0.5 ; //線分segが、平面sと交わるならTrueを返し、交点をdestに格納します。 if NowIntersectLinePlane(c_pos,c_LineSeg,NowPlaneFromPoints(p_pos0,p_pos1,p_pos2)) then //もし交差してたらその場所にポリゴン表示 testFigure.Figure.TopFrame.SetTranslation(Camera ,c_pos); む〜表示されない・・ c_LineSeg にStart(0,+NAN,+NAN) End(1.744.. ,+NAN)とか入ってるしNANってなんだ? LineSeg3Dの使い方が違うのかなぁ、、、 http://peace.5ch.net/test/read.cgi/gamedev/1072515100/101
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s