BASIC

Author Topic: Lade - Funktion  (Read 1494 times)

Offline WPShadow

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1665
    • View Profile
    • http://lostrevenant.blogspot.com
Lade - Funktion
« on: 2010-Sep-16 »
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.
« Last Edit: 2010-Sep-17 by 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