entity does not exist...ich kann den fehler nicht finden!

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

timo_81

Betreff: entity does not exist...ich kann den fehler nicht finden!

BeitragDo, Sep 08, 2005 1:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte mal zufällig Bäume verteilen...
es kommt immer bei positionentity : entity does not exist.
BlitzBasic: [AUSKLAPPEN]


;Bäume
Dim baum(500)
For h = 1 To 500
baum(h)=LoadMesh(\"baumA.b3d\" )

xwert = Rnd(-1000,2000)
zwert = Rnd(-1000,2000)
PositionEntity baum(h),xwert,EntityY(cam),zwert
;ScaleEntity baum(h) ,0.1,0.1,0.1
EntityType baum(h),landschaft
EntityBox baum(h),-(MeshWidth(baum(h))/2),-(MeshHeight(baum(h))/2),-(MeshDepth(baum(h))/2),MeshWidth(baum(h)),MeshHeight(baum(h)),MeshDepth(baum(h))

Next
 

Xception

BeitragDo, Sep 08, 2005 2:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Heisst der Baum wirklich "BaumA.b3d" und nicht etwa "Baum.b3d" und ist er im Verzeichnis in dem du ihn versuchst zu laden?
Xception
Gamedesign & more
 

timo_81

BeitragDo, Sep 08, 2005 2:16
Antworten mit Zitat
Benutzer-Profile anzeigen
man der hieß baumA.3ds arrrghhh...

aber wenn das Programm lädt stunden und dann stürzt es ab.
Ist die Anzahl etwa zu hoch?
Ich hab 1 Gb RAM
 

timo_81

BeitragDo, Sep 08, 2005 2:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Normalerweise müssten die Bäume doch exakt auf dem Terrain stehen
da ich ja an der Stelle der Baumgenerierung mit
Terrainheight die Höhe auslese oder??

Ist leider nicht so Sad
Hier mein modifizierter Code


;Bäume
Dim baum(5)
For h = 1 To 5 ;das erleb ich wenigstens noch
baum(h)=LoadMesh("baumA.3ds" )

BlitzBasic: [AUSKLAPPEN]

xwert = Rnd(100,700)
zwert = Rnd(100,700)
ywert=TerrainHeight(terrain,xwert,zwert)
RotateEntity baum(h),90,0,0
PositionEntity baum(h),xwert,ywert,zwert
;ScaleEntity baum(h) ,0.1,0.1,0.1
EntityType baum(h),landschaft
EntityBox baum(h),-(MeshWidth(baum(h))/2),-(MeshHeight(baum(h))/2),-(MeshDepth(baum(h))/2),MeshWidth(baum(h)),MeshHeight(baum(h)),MeshDepth(baum(h))

Next
 

MegaTefyt

BeitragDo, Sep 08, 2005 7:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieviele Polygone hat ein Baum? Bei 1000 pro Baum hättest du schon 500000 Polygone...

Als nächstes benutz nicht LoadMesh mehrfach für gleiche Objekte. Mach ganz am Anfang:

BaumMesh = LoadMesh("BaumA.3ds")
HideEntity BaumMesh

NOCH VOR DER SCHLEIFE und in der Schleife benutzt du dann

baum(h) = CopyEntity(BaumMesh)

tobiasm767

BeitragDo, Sep 08, 2005 7:50
Antworten mit Zitat
Benutzer-Profile anzeigen
mit TerrainHight() bekommst du nur Werte von 0-1, also musst du den Wert noch mal dem Skalierungsfaktor des Terrains nehmen (den Wert den du bei scaleentity für Y beim Terrain genutzt hast)
 

timo_81

BeitragDo, Sep 08, 2005 8:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du mir kurz n Beispiel tippen??
Ich wollte nur mal kurz wissen wie dat aussieht.

Greetz
Timo

Black Spider

BeitragDo, Sep 08, 2005 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hab´das gleiche mit Steinen gemacht... vll. hilfts dir ja:
BlitzBasic: [AUSKLAPPEN]

Global Stein = LoadMesh(\"Objekte/Stein.3ds\")
HideEntity Stein

Type Steintype
Field Stein
Field Gross
Field Entype
End Type

For s = 0 To 10
Steinsetzen( )
Next

...
BlitzBasic: [AUSKLAPPEN]

Function Steinsetzen( )
sg = Rnd(5, 30)
s.Steintype = New Steintype
s\Stein = CopyEntity(stein)
s\Gross = sg
s\Entype = Type_Stein
PositionEntity s\Stein,Rnd(101, 10104),900,Rnd(7276, 9933)
ScaleEntity s\Stein,sg,sg,sg
EntityColor s\Stein,50,60,30
EntityType s\Stein, s\Entype

End Function

die Werte hab ich voher mit dem Player auf dem Terrain abgemessen
BlitzBasic: [AUSKLAPPEN]
 RenderWorld
Text 0,0,\"X: \"+EntityX(player)
Text 0,20,\"Y: \"+EntityY(player)
Text 0,40,\"Z: \"+EntityZ(player)

und dann eingefügt. klappt bestens.
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif
 

timo_81

BeitragDo, Sep 08, 2005 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe jetz mein Baumalgorithmus n bisschen geändert
aber bei 50 Bäumen ruckelts obwohl ich CopyEntity statt
CopyMesh genommen hab.

Desweiteren hab ich versucht mit TerrainY die richtige Höhe rauszubekommen aber manche Bäume schweben trotzdem in der Luft
oder sind zu weit im Boden....

Habt ihr ne besser Idee??
Hier also der Code:

BlitzBasic: [AUSKLAPPEN]


;Bäume
Dim baum(25) ;bei 50 ruckelts!!

baumA=LoadMesh(\"baumB.3ds\" )
HideEntity baumA
For h = 1 To 25
xwert = Rnd(100,700)
zwert = Rnd(100,700)
baum(h)=CopyEntity(baumA)
ywert=TerrainHeight(terrain,xwert,zwert)
RotateEntity baum(h),90,0,0
PositionEntity baum(h),xwert,TerrainY(terrain,EntityX(cam),EntityY(cam),EntityZ(cam)),zwert
;ScaleEntity baum(h) ,0.1,0.1,0.1
EntityType baum(h),landschaft
EntityBox baum(h),-(MeshWidth(baum(h))/2),-(MeshHeight(baum(h))/2),-(MeshDepth(baum(h))/2),MeshWidth(baum(h)),MeshHeight(baum(h)),MeshDepth(baum(h))

Next

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group