Manager für alle Spielresourcen
Übersicht

![]() |
Suco-XBetreff: Manager für alle Spielresourcen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Abend.
Viele Globale Variablen in Spielen (z.b. die ganzen Images und Sounds) sind meistens unschön und eine schlechte Lösung. Drum habe ich dafür einen kleinen Manager gecodet, der das in Bmax vorhandene Map Modul etwas erweitert. Man kann jetzt Sachen in einem Manager einfügen und mit einem Namen versehen. Mit diesem Namen kann man es dann wieder rausholen. Code: [AUSKLAPPEN] Strict Rem Der ResourceManager ist eine Erweiterung der TMap Klasse (Aus dem Map Modul) Ich habe eine Methode unbenannt und zwei hinzugefügt, die das Object schon automatisch umwandeln. Kann jederzeit für Sounds usw erweitert werden. End Rem Type TResourceManager Extends TMap Method Add(Key:Object, Value:Object) super.Insert(Key, Value) End Method Method GetList:TList(Key:Object) Return TList(ValueForKey(Key)) End Method Method GetImage:TImage(Key:Object) Return TImage(ValueForKey(Key)) End Method End Type 'Beispiel 1 Local ListenManager:TResourceManager = New TResourceManager ListenManager.Add("liste1", New TList) ListenManager.Add("liste2", New TList) Local TempListe:TList TempListe = ListenManager.GetList("liste1") TempListe.AddLast("String in liste1") TempListe = ListenManager.GetList("liste2") TempListe.AddLast("String in liste2") Local TempString:String Print "" Print "Inhalte von liste1" For TempString = EachIn ListenManager.GetList("liste1") Print TempString Next Print "" Print "" Print "Inhalte von liste2" For TempString = EachIn ListenManager.GetList("liste2") Print TempString Next Print "" 'Beispiel 2 Graphics 800,600,0 Local ImagePack1:TResourceManager = New TResourceManager ImagePack1.Add("image1", CreateImage(32, 32)) Cls SetColor 255,0,0 DrawOval 0,0,32,32 Local TempImage:TImage = ImagePack1.GetImage("image1") GrabImage TempImage,0,0 Cls SetColor 255, 255, 255 DrawImage TempImage,0,0 Flip WaitKey Wenn man eine Variable aus einem Manager mehrmals hintereinander verwendet, sollte man diese kurz zwischenspeichern. Denn bei den Get Befehlen wird jedesmal alles durchgegangen was drin gespeichert ist, was wiederrum Speed kostet und schnell nach hinten losgehen kann. Mfg Suco |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group