Type und Dim Problem
Übersicht

furbolgBetreff: Type und Dim Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leutz !
Eigentlich kenn ich mich mit Types aus und sie sind super easy aber eines check ich net: Code: [AUSKLAPPEN] Type TTerrainData field y# field tex% end type Dim TerrainData.TTerrainData(0,0) .... function Create_Terrain(TX,TZ) Dim TerrainData(TX,TZ) for z = 0 to TZ-1 for x = 0 to TX-1 TerrainData(x,z) = new TTerrainData TerrainData(x,z)\y = 1 TerrainData(x,z)\tex = 0 ;noch keine Textur next next ;eigentlich steht hier ne for schleife aber geht auch hier nicht (selber error) debuglog "Y# : " + TerrainData(0,0)\y ; << Error: Array out of Bound oder so end function Habt ihr ne Idee wo der Fehler is ?[/b] |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab eigentlich nichts verändert und bei mir gehts wunderbar. In die Debuglog schreibt er : "Y#: 1.0"Code: [AUSKLAPPEN] Type TTerrainData
Field y# Field tex% End Type Dim TerrainData.TTerrainData(0,0) create_terrain(1,1) WaitKey() End Function Create_Terrain(TX,TZ) Dim TerrainData(TX,TZ) For z = 0 To TZ-1 For x = 0 To TX-1 TerrainData(x,z) = New TTerrainData TerrainData(x,z)\y = 1 TerrainData(x,z)\tex = 0 ;noch keine Textur Next Next ;eigentlich steht hier ne for schleife aber geht auch hier nicht (selber error) DebugLog "Y# : " + TerrainData(0,0)\y ; << Error: Array out of Bound oder so End Function |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm ... komisch bei mir gehts jetzt auch aber bei der for schleife immer noch net ...
// edit sehr komisch ... Wenn ich alles nach dem erstellen Test gehts, sobald ich die Füllschleife nutzte gehts nicht .... muss den Code wohl nochmal überarbeiten ... |
||
- Zuletzt bearbeitet von furbolg am So, Okt 17, 2004 6:02, insgesamt 2-mal bearbeitet
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Poste mal die Schleife, der Fehler kann ja nur dort zu finden sein ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
furbolg |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Auf deine Verantwortung ![]() Ich weiss nich wie ich das 3D Terrain in Blitz3D umsetzen soll ... In C wars mit Pointer leichter ^^ Code: [AUSKLAPPEN] Type TERRAIN_TLevelData Field y# Field tex% End Type Const TERRAIN_PatchSize = 16 Dim TERRAIN_LevelData.TERRAIN_TLevelData(0,0) Dim TERRAIN_PatchMesh(0,0) Dim TERRAIN_PatchSurface(0,0,0) Function TERRAIN_CreateFlat(SizeX,SizeY) ;Our Cube look like this (Ascii Artist ;) ; (0,1) (1,1) ; v2 v4 ; +--------+ ; | \ | ; | \ | ; | \ | ; | \ | ; | \ | ; | \ | ; +--------+ ; v0 v1 ; (0,0) (1,0) ; If model wrong dir then rotateentity camera,0,90,0 brush=CreateBrush(255,255,255) ;mesh=CreateMesh() ;surface=CreateSurface(mesh,brush) ;v0=AddVertex(surface,0+1,0,0+1) ;v1=AddVertex(surface,1+1,0,0+1) ;v2=AddVertex(surface,0+1,0,1+1) ;v3=AddVertex(surface,1+1,1,1+1) ;AddTriangle(surface,v0,v2,v1) ;AddTriangle(surface,v2,v3,v1) ;UpdateNormals mesh ;EntityFX mesh,2 ;Redim + Leveldaten setzen Dim TERRAIN_LevelData.TERRAIN_TLevelData(SizeX,SizeY) Dim TERRAIN_PatchMesh(SizeX/TERRAIN_PatchSize,SizeY/TERRAIN_PatchSize) Dim TERRAIN_PatchSurface(SizeX/TERRAIN_PatchSize,SizeY/TERRAIN_PatchSize,TERRAIN_PatchSize*TERRAIN_PatchSize) For LY = 0 To SizeY-1 For LX = 0 To SizeX-1 TERRAIN_LevelData(LX,LY) = New TERRAIN_TLevelData TERRAIN_LevelData(LX,LY)\y = 0 TERRAIN_LevelData(LX,LY)\tex = 0 Next Next For LY = 0 To SizeY-1 For LX = 0 To SizeX-1 bla = TERRAIN_LevelData(tx,ty)\y Next next ;Patches erstellen + füllen tx = 0 ty = 0 pxpy = 0 For Y = 0 To (SizeX / TERRAIN_PatchSize)-1 For X = 0 To (SizeY / TERRAIN_PatchSize)-1 TERRAIN_PatchMesh(X,Y) = CreateMesh() For PatchY = 0 To TERRAIN_PatchSize-1 For PatchX = 0 To TERRAIN_PatchSize-1 If(PatchY = 0 And PatchX = 0) TERRAIN_PatchSurface(X,Y,0) = CreateSurface(TERRAIN_PatchMesh(X,Y),brush) ;beim 1. erstellen brauchen wir nur ein surface ^^ bla = TERRAIN_LevelData(tx,ty)\y v0=AddVertex(TERRAIN_PatchSurface(X,Y,0),0+tx,0+TERRAIN_LevelData(tx,ty)\y,0+ty) v1=AddVertex(TERRAIN_PatchSurface(X,Y,0),1+tx,0+TERRAIN_LevelData(tx,ty)\y,0+ty) v2=AddVertex(TERRAIN_PatchSurface(X,Y,0),0+tx,0+TERRAIN_LevelData(tx,ty)\y,1+ty) v3=AddVertex(TERRAIN_PatchSurface(X,Y,0),1+tx,0+TERRAIN_LevelData(tx,ty)\y,1+ty) AddTriangle(TERRAIN_PatchSurface(X,Y,0),v0,v2,v1) AddTriangle(TERRAIN_PatchSurface(X,Y,0),v2,v3,v1) DebugLog ("X: "+X+" Y: "+Y+" TX: "+tx+" TY: "+ty) Else TERRAIN_PatchSurface(X,Y,pxpy) = -1 ;ungenutzt markieren EndIf pxpy = pxpy + 1 tx = tx + 1 Next ty = ty + 1 Next UpdateNormals TERRAIN_PatchMesh(X,Y) EntityFX TERRAIN_PatchMesh(X,Y),2 Next Next vielleicht hast du ja tipps wie ichs besser machen kann (in bezug ich mesh, surface etc. ich brauch 16*16 surface weil bei mir jeder Patch (16*16) theoretisch ne eigene Textur haben soll ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group