掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FireMonkey の 3D Object をコードで記述したい (ID:45862)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Proxy を追加して確認して見たのですが、 意図したものにならないのでご指導下さい。 下記のように、①②③④と Proxy を追加して、 Proxy の SourceObject を Cube にしています。 Cube と Proxy をずらして、2つの Cube が表示されるように 座標をずらしているのですが、F9 でコンパイルした場合、 10回中1回くらいは、2つの Cube(1つは Cube で、もう1つは、Proxy で Source した Cube ) が表示され、 9回は、Proxy で記述した Cube が1つだけ表示されます。 (コンパイル後の exe を実行すると100% Proxy で記述した Cube が1つだけ表示されます。) 2つの Cube(1つは Cube で、もう1つは、Proxy で Source した Cube ) を 確実に表示するには、下記のコードをどう修正すればいいでしょうか。 今回は確認の為 Object の親子関係は、 下記のように Dummy ではなく、Self(3DForm)にしています。 Dummy | +-Cube | +-ProxyObject 分かる方がいらっしゃいましたら、ご指導の程よろしくお願い致します。 procedure TForm1.Form3DCreate(Sender: TObject); var Img_Dummy : TDummy; Img_Cube : TCube; //① Begin Img_Proxy : TProxyObject; //① End begin LightMaterialSource1.Diffuse := TAlphaColorRec.Green; Img_Dummy := TDummy.Create(nil); Img_Cube := TCube.Create(nil); //② Begin Img_Proxy := TProxyObject.Create(nil); //② End Img_Dummy.Parent := Self; Img_Cube.Parent := Img_Dummy; //③ Begin Img_Proxy.Parent := Self; //③ End TCube(Img_Cube).MaterialSource := LightMaterialSource1; Img_Cube.SetSize(3, 3, 3); Img_Cube.Position.Point := Point3D(1, 1, 1); //④ Begin TProxyObject(Img_Proxy).SourceObject := Img_Cube; Img_Proxy.SetSize(1, 1, 1); Img_Proxy.Position.Point := Point3D(5, 5, 1); //④ End end; 作成手順 ファイル 新規作成 FireMonkey デスクトップアプリケーション 3D FireMonkey アプリケーション で作成します。 フォームに Light と LightMaterialSource を配置します。 フォームをダブルクリックして、uses 節に FMX.Objects3D を手入力で追加します。 使用環境 Delphi XE5 Pro Update2 Win7 Pro 64bit SP1
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.