Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi GLScene: objekte zurlaufzeit + unterschiedlich groß (https://www.delphipraxis.net/80004-glscene-objekte-zurlaufzeit-unterschiedlich-gross.html)

mimi 1. Nov 2006 13:24


GLScene: objekte zurlaufzeit + unterschiedlich groß
 
Hallo,
ich möchte mit zwei forschleifen unterschiedliche große objekte erzeugen hier ist mein code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  cub:TGLCube;
  x,z,i:Integer;
begin
  for x:=0 to 50 do begin
    for z:=0 to 50 do begin
      cub:=TGLCube(GLScene1.objects.AddNewChild(TGLCube));
      cub.CubeDepth:=random(10)+2;
      cub.CubeWidth:=random(10)+2;
      cub.Position.X:=(x)*cub.CubeWidth;
      cub.Position.y:=4;
      cub.Position.z:=(z)*cub.CubeDepth;
      cub.Material.FrontProperties.Diffuse.Red:=random;
      cub.Material.FrontProperties.Diffuse.Green:=random;
      cub.Material.FrontProperties.Diffuse.Blue:=random;
    end;
  end;
  GLSphere1.position.y:=50;
  GLSphere1.Position.x:=60;
  GLSphere1.Position.z:=60;

end;
doch leider sind abstände zwischen den objekten und ich weiß nicht warum !

igel457 1. Nov 2006 13:47

Re: GLScene: objekte zurlaufzeit + unterschiedlich groß
 
So kann das ja auch nicht funktionieren. Eher so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  cub:TGLCube;
  x,z,i:Integer;
  lastX,lastZ:integer;
begin
  lastX := 0;
  lastZ := 0;
  for x:=0 to 50 do begin
    for z:=0 to 50 do begin
      cub:=TGLCube(GLScene1.objects.AddNewChild(TGLCube));
      cub.CubeDepth:=random(10)+2;
      cub.CubeWidth:=random(10)+2;
      cub.Position.X:=lastX;
      cub.Position.y:=4;
      cub.Position.z:=lastZ;
      cub.Material.FrontProperties.Diffuse.Red:=random;
      cub.Material.FrontProperties.Diffuse.Green:=random;
      cub.Material.FrontProperties.Diffuse.Blue:=random;
      lastX := cub.Position.X+cub.CubeWidth;
      lastZ := cub.Position.Z+cub.CubeDepth;
    end;
  end;
  GLSphere1.position.y:=50;
  GLSphere1.Position.x:=60;
  GLSphere1.Position.z:=60;

end;
[EDIT]Wobei mir gerade auffält das du ja zwei FOR Schleifen hast und mein Code so auch nicht richtig funktioniert er geht aber eher in die Richtung...[/EDIT]

mimi 1. Nov 2006 14:57

Re: GLScene: objekte zurlaufzeit + unterschiedlich groß
 
lustig, jetzt werden alle elemente hintereinander gezeichnet.... soweit war ich auch schonmal..
aber danke für deine antwort !


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz