Autor Beitrag
Majinor
Hält's aus hier
Beiträge: 7

Win XP, SuSE Linux 8.1
D3 Prof, D6 Pers
BeitragVerfasst: So 14.12.03 17:37 
Ahoi leuts,
komme derzeit relativ gut mit GLScene voran. Nur gibt es derzeit noch ein Prob was ich irgendwie net hinbekomme. Ich will z.B. wie in einem Strategie Spiel Einheiten erstellen koennen. Dafuer muss ich dann zur Laufzeit jeweils einen eigenen Actor oder sonstwas erstellen. (derzeit mach ichs zum testen erstmal mit n dynamischen array und Cubes)

Das funktioniert aber nur mittelmaesig. Grund dafuer ist es, das ich nicht weis wie ich Objekte erstelle ohne sie als Child eines anderen Objektes zu deklanieren.

So hab ich es bisher gemacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
mainbuilding[0] := TGLCube.Create(DummyCube1);
    mainbuilding[0].Parent := DummyCube1;
    mainbuilding[0].CubeWidth := 20;
    mainbuilding[0].Cubeheight := 20;
    mainbuilding[0].CubeDepth := 20;
    mainbuilding[0].Position.X := 0;
    mainbuilding[0].Position.Y := 0;
    mainbuilding[0].Position.Z := 0;
    mainbuilding[0].Visible := true;

(Cube wird an der Position des Dummycubes erstellt)
Ich kann den Cube jetzt zwar sehen aber wenn ich den DummyCube bewege bewegt sich natuerlich der Cube gleicht mit.
Auf der GLScene Doc Seite hab ich zwar folgendes gefunden um ein Objekt als Root Objekt zu erstellen:
Zitat:
Illustration1: Creating root scene object.
lObject := GLScene.Objects.AddNewChild(TGLCube);

Aber GLScene.Objects scheint in den neueren Versionen nicht mehr zu exestieren. Hab schon einiges rumprobiert trotzdem wills net gehen :(
Weis da vllt einer was ich sonst nehmen muss oder wie ich das hinkriege?
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: So 14.12.03 21:10 
Natürlich gibt es Objects als Property vom TGLScene noch (ist zwar leider schon etwas länger her, seit ich die aktuelle Version aus dem CVS gesaugt habe, aber Eric hat das garantiert nicht geändert, weil die gesamte Struktur darauf aufbaut)!
Aber deine Instanz heißt vielleicht nicht GLScene. Wenn du einfach nur deine Scene auf die Form ziehst, heißt die erste GLScene1, die zweite GLScene2 usw. Da man aber normalerweise nur eine Scene braucht, solltest du es mal mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
  mainbuilding[0] := TGLCube(GLScene1.Objects.AddNewChild(TGLCube));
  mainbuilding[0].CubeWidth := 20;
  mainbuilding[0].Cubeheight := 20;
  // ...

probieren.

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert
Majinor Threadstarter
Hält's aus hier
Beiträge: 7

Win XP, SuSE Linux 8.1
D3 Prof, D6 Pers
BeitragVerfasst: So 14.12.03 21:31 
*freu* es funktioniert :)
Mh weis zwar jetzt irgendwie net warums auf einmal geht aber auch egal hauptsache es funzt :D (wahrscheinlich hab ichs irgendwie falsch angewendet oder das parent dann falsch gesetzt oder so...)

EDIT: Mh neues prob... ich versuche jetzt das neu erstellte modell zu selektieren. Dafuer wollte ich das Beispiel 'pick' benutzen. Nur funktioniert das scheinbar irgendwie nicht richtig bei TerrainRenderer. Jedes mal wenn ich mich verklicke gibts n error in der Zeile:
pick:=(GLSceneViewer1.Buffer.GetPickedObject(x, y) as TGLCustomSceneObject);
Was kann man denn dagegen machen das, dass programm nicht abschmiert wenn man das Terrain anwaehlt?
tommie-lie
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 4373

Ubuntu 7.10 "Gutsy Gibbon"

BeitragVerfasst: Mo 15.12.03 16:04 
Bitte für jede Frage ein eigenes Topic aufmachen, vor allem hier, wo die Fragen nicht zusammenhängen (Daß beide mit GLScene zu tun haben würde ich nicht als zusammenhägnen bezeichnen ;-) ).

_________________
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk. - Dilbert