Blindheit ist (m)ein Problem

Previous topic - Next topic

WPShadow

Hi!

Ich habe einen kleinen Code geschrieben, bei dem ich versuche aus einer Datei Texte und Werte auszulesen und entsprechend auszuwerten. Problem an der Sache ist, daß es beinahe funktioniert, aber ich irgendetwas übersehen muß, da ich versuche 2 verschiedene 3D Modelle auszulesen, aber immer bloß das 2. geladen wird. Das dafür aber dann 2mal... =/

Hier der Code:

Code (glbasic) Select
// Erstellen der zu ladenden Objekte
TYPE My_Obj
Teile
Modell[]
Textur[]
M_Textur[]
ENDTYPE

// Globalsetzung
GLOBAL DB_Obj[] AS My_Obj

// Maximal 99 Objekte aus der Datenbank gleichzeitig im Bild
DIM DB_Obj[99]


load_ship(1, DB_Obj[0])


WHILE TRUE
X_MAKE3D 1, 1000, 45

X_CAMERA 1, 1000, 0, 0, 0, 0
 
  draw_ship(1)

SHOWSCREEN

WEND





FUNCTION load_ship: schiff, obj AS My_Obj
LOCAL Art$, a_tmp, Art_a$, num, num$, Zufall[], tmp, splits$[], Zuf

// Setzen für späteren Zufallsgenerator
DIM Zufall[1]

// Öffnen der DB - Datei

IF DOESFILEEXIST("data/db/test.dat")
INIOPEN "data/db/test.dat"
ENDIF

// Einlesen der Art des Schiffes
Art$ = INIGET$("db", schiff)

// Einlesen des Stammordners und der Anzahl der Teile
// Einzelteile:
num$ = INIGET$(Art$, Art$)
num = num$

// Übergabe der Teilzahl
obj.Teile = num

// Dimensionierung der einzelnen Objekte
DIM obj.Modell[num + 1]
DIM obj.Textur[num + 1]
DIM obj.M_Textur[num + 1]

// Einlesen der Zufallsgrößen
FOR a_tmp = 1 TO num
REDIM Zufall[a_tmp + 1]
Art_a$ = Art$ + "_" + a_tmp
Zufall[a_tmp] = INIGET$(Art$, Art_a$)
Zuf = RND(Zufall[a_tmp]) + 1
IF Zuf > Zufall[a_tmp] THEN Zuf = Zuf - 1
SPLITSTR(INIGET$(Art$, Art_a$ + "_" + Zuf), splits$[], "|")

// Übergabe der Daten
X_LOADOBJ splits$[0], obj.Modell[a_tmp]
LOADSPRITE splits$[1], obj.Textur[a_tmp]
LOADSPRITE splits$[2], obj.M_Textur[a_tmp]

NEXT


// PRINT obj.Modell$[1], 0,0
// PRINT obj.Textur$[1], 0,10
// PRINT obj.M_Textur$[1], 0,20
// PRINT obj.Teile, 0, 30
//
//
// SHOWSCREEN
//
// KEYWAIT
//
// END


ENDFUNCTION



FUNCTION draw_ship: index
LOCAL a_tmp

X_PUSHMATRIX

FOR a_tmp = 1 TO DB_Obj[index - 1].Teile
X_SETTEXTURE DB_Obj[a_tmp].Textur, DB_Obj[a_tmp].M_Textur

X_MOVEMENT 0, 0, a_tmp * 200

X_DRAWOBJ DB_Obj[a_tmp].Modell, 0
NEXT

X_POPMATRIX

X_PRINT DB_Obj[index - 1].Teile, 200, 0, 0, 0

ENDFUNCTION
Falls jemand einen Fehler findet, werft ihn mir bitte an den Kopf und verprügelt mich damit! Ich suche seit heute in der Früh danach und werde fast wahnsinnig!!!

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

schau ich mir nachher mal an !
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

WPShadow

AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Schreib dir mal mit DEBUG ein paar Zwischenwerte auf die Konsole. Das ist ja superverschachtelt mit deinem Zufall-dingens.

WPShadow

Das habe ich schon! Ich blicke ja selbst nicht mehr durch! =/

Da liegt ja mein Problem, deshalb dachte ich, daß vielleicht jemand anders vielleicht durch blickt! *scherz*

Nein, das Problem ist eine Kleinigkeit, die ich scheinbar übersehe. Und ich weiß bloß noch wo, da er mir eigentlich alles (halbwegs) so macht, wie ich es möchte...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

D2O

Kannst Du mal die Files auch hochladen??
Dann könnt ich es auch mal laufen lassen und über Debug was finden.
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Lenovo ThinkPad T400: XP Pro
GLB Premium-immer Aktuell

WPShadow

AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Siehe email. Du lädst in die Felder 1...2 und zeigst dann:
FOR num_t = 1 TO BOUNDS(..., 0) -1

was zu folge hat, dass Du nur 1...1 anzeigst. Also eins zu wenig. Ich hab Dir in der Mail das Ding in die Felder
  • verschoben, jetzt passt's - oder?

WPShadow

Leider nein...

Anzeigen tut er mir immer noch den Auszug:

pirat_1_2_1

Den dafür aber 2mal! =/
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est