Lade - Funktion

Previous topic - Next topic

WPShadow

Hi,

nach langem Überlegen habe ich mir eine Ladefunktion gebaut!

Ich hoffe, ihr könnt auch was damit anfangen!

Code (glbasic) Select

TYPE loader
// 0: Sprites
// 1: Modelle
// 2: Texturen
// 3: Sound

file_name$[5][1000][3]
anzahl[5]


FUNCTION dynLoad: typ, file$
LOCAL tmp, id, load

// ID - Check
FOR tmp = 0 TO self.anzahl[typ]
IF file$ = self.file_name$[typ][tmp][0]
load = 1
id = self.file_name$[typ][tmp][1]
ENDIF
NEXT

// Ladevorgang
IF load = 0
SELECT typ
CASE 0
id = GENSPRITE()
LOADSPRITE file$, id
IF id > self.anzahl[0] THEN self.anzahl[0] = id
CASE 1
id = GENX_OBJ()
X_LOADOBJ file$, id
IF id > self.anzahl[1] THEN self.anzahl[1] = id
CASE 2
id = GENSPRITE()
LOADSPRITE file$, id
IF id > self.anzahl[2] THEN self.anzahl[2] = id
CASE 3
id = GENSOUND()
LOADSOUND file$, id, 1
IF id > self.anzahl[3] THEN self.anzahl[3] = id
ENDSELECT

self.file_name$[typ][id][0] = file$
self.file_name$[typ][id][1] = id

ENDIF

RETURN id
ENDFUNCTION


FUNCTION dynUnload: typ, id$
LOCAL id

id = id$

SELECT typ
CASE 0
LOADSPRITE "", id
CASE 1
X_LOADOBJ "", id
CASE 2
LOADSPRITE "", id
CASE 3
LOADSOUND "", id, 1
ENDSELECT

FOR tmp = 1 TO self.anzahl[typ]
IF LEN(self.file_name$[typ][id][0]) > 0
aktiv = tmp
ENDIF
NEXT

self.anzahl[typ] = aktiv

ENDFUNCTION


ENDTYPE


In der Anwendung sieht das Ganze dann so aus:

Code (glbasic) Select

GLOBAL ld AS loader

pic$  = ld.dynLoad(0, "pic_1.png")
pic2$ = ld.dynLoad(0, "pic_1.png")

ld.dynUnload(0, pic$)

WHILE TRUE

PRINT pic$, 0, 0
PRINT pic2$, 0, 20

SHOWSCREEN
WEND



LG

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