[Monkey] Asset Manager

Übersicht Andere Programmiersprachen Codearchiv & Module

Neue Antwort erstellen

Farbfinsternis

Betreff: Asset Manager

BeitragFr, Mai 09, 2014 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich wollte Euch nur kurz mein neues Modul vorbei bringen: Einen Asset Manager für Monkey.

Wozu ist das gut?
Ein großer Nachteil von Mojo ist dass es Resourcen "am Stück" lädt. Solange es das tut bleibt der Bildschirm leer und der User kann sich nicht ganz sicher sein ob das Programm noch läuft oder schon abgeschmiert ist.

Was macht der Manager anders?
Der AssetManager lädt die Resourcen (Assets) asynchron und lässt so Dein Programm weiter laufen während er im Hintergrund noch fleißig Resourcen in den Speicher schaufelt.

Beispiel:
BlitzMax: [AUSKLAPPEN]

Strict

' Wenn Du den AssetManager importierst bringt er Mojo gleich mit,
' Du musst es nicht noch einmal importieren
Import sedm.assetmanager

Class Sample Extends App
Private
Field assets:AssetManager

' ein paar Assets
Field logo:ImageAsset
Field image:ImageAsset

Field ratio:Float

Public
Method OnCreate:Int()
' als erstes benötigen wir eine Intanz des Managers
Self.assets = New AssetManager()
Self.ratio = Float(DeviceWidth()) / 1920.0

' Assets per Manager laden
Self.logo = Self.assets.LoadImage("logo.png", 1, Image.MidHandle)
Self.image = Self.assets.LoadImage("assetmgr.jpg")

SetUpdateRate(30)

Return 0
End

Method OnUpdate:Int()
' der Manager muss aktualisiert werden
Self.assets.Update()

Return 0
End

Method OnRender:Int()
Cls()

PushMatrix()
Scale(Self.ratio, Self.ratio)

If Self.assets.assetsLeft = 0
' rendere Dein Game -- alle Assets sind geladen
Self.image.Draw(0, 0)
Else
If Self.logo.loaded logo.Draw(960, 540)
EndIf

PopMatrix()

Return 0
End
End

Function Main:Int()
New Sample()
Return 0
End

Das Modul könnt Ihr Euch von www.monkey-x.de/modules/sedm.zip herunter laden. Das oben gezeigte Beispiel und eine Dokumentation liegen bei.
Farbfinsternis.tv

Neue Antwort erstellen


Übersicht Andere Programmiersprachen Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group