Bilder laden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

markus

Betreff: Bilder laden

BeitragMo, Jun 09, 2008 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich versuch mich gerade auch ein wenig im Programmieren und hab da ein nettes kleines Spiel gebastelt. Problem war, dass ich einige kleine Bilddateien hatte, die ich gerne zusammenfassen würde. Soll also heißen, dass ich bis jetzt sieben Bilder habe und diese in dieser Form lade:

Global pu1 = LoadImage("gfx/powerup01.bmp"): MaskImage pu1,255,0,255
Global pu2 = LoadImage("gfx/powerup02.bmp"): MaskImage pu2,255,0,255
Global pu3 = LoadImage("gfx/powerup03.bmp"): MaskImage pu3,255,0,255
Global pu4 = LoadImage("gfx/powerup04.bmp"): MaskImage pu4,255,0,255
Global pu5 = LoadImage("gfx/powerup05.bmp"): MaskImage pu5,255,0,255
Global pu6 = LoadImage("gfx/powerup06.bmp"): MaskImage pu6,255,0,255
Global pu7 = LoadImage("gfx/powerup07.bmp"): MaskImage pu7,255,0,255

Jetzt will ich das Ganze geschickter machen und hab mal probiert die ganzen Bilder in einer Bitmap-Datei unterzubringen, dass ich weniger Text und auch weniger Dateien im "gfx"-Ordner habe.
Aber jetzt weiß ich leider nicht mehr, wie ich das Ganze elegant lösen kann mit dem Laden der einzelnen Bilder Sad

Xeres

Moderator

BeitragMo, Jun 09, 2008 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst mehrere Bilder mit einem Grafikprogramm zu einem größeren zusammenfügen und mit LoadAnimImage laden, oder du verwendest eine Zählschleife zum Laden:
Code: [AUSKLAPPEN]
DIM bild(7)
For i=1 to 7
bild(i) = LoadImage("gfx/powerup0" + i + ".bmp")
next
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

markus

BeitragMo, Jun 09, 2008 11:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, vielen Dank. Mach ich gleich mal so ^^

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragMo, Jun 09, 2008 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Dies benötigt aber mehr Rechenaufwand, auch wenn es auf den ersten Blick vielleicht schöner aussieht.
Du solltest nach Möglichkeit alles in ein Bild stecken (4e bei Animationen) und mit LoadAnimImage laden, ansonsten lieber die Langform nehmen.

BladeRunner

Moderator

BeitragMo, Jun 09, 2008 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Na, da nimmt es aber wer übergenau. Ich glaube nicht dass die paar Prozessorzyklen für die Schleife und die Streams den Hasen so fett machen. Und zumindest bei loadanimimage wird intern auch mit Schleifen gearbeitet also fällt es noch weniger ins Gewicht.
Wenn man Code auf Performance optimiert dann sinnvollerweise dort wo am meisten davon gefressen wird. Bei solchen Dingen wie hier dem Einladen (was man ja idR nur einmal macht) sollte die Lesbarkeit und Wartbarkeit des Codes im Vordergrund stehen, und da ist das Einzelladen dann Gift.
Totoptimierter Code ist auch nüschts Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragMo, Jun 09, 2008 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, erstens hast du schon Recht, ich versuche zu optimieren wo es geht und ich denke auch,
dass man das jedem Einsteiger auch klar machen sollte, dass die große Leistung schnell weg ist.
Abgesehen davon finde ich es nicht unübersichtlich, wenn man eine Quellcodedatei inkludiert in der nur Resourcen geladen werdden.

BladeRunner

Moderator

BeitragMo, Jun 09, 2008 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Jo, aber ein optimieren an dieser Stelle ist halt (meines Erachtens nach) ziemlicher Käse, denn die Ladeschleife wird einmalig aufgerufen, und solang die läuft ist ja nichts andres da was Ressourcen zieht. Das bisserl Gewinn lohnt nicht den Aufwand, und der 3Zeiler mit For next oder das Loadanimimage ist eben wesentlich übersichtlicher. Ob ausgelagert oder nicht Wink
Anders schaut es im Hauptprogramm in häufig durchlaufenen Funktionen aus, dort kann ein Optimieren wirklich sehr sinnvoll sein.

Worauf ich hinaus will': nicht jede Optimierung bringt wirklich was, und wenn man zuviel Zeit in Optimierung investiert um jeden Fitzel aufs Maximum zu beschleunigen bringt dass oft fürs Spiel nur wenig aber es kostet unheimlich Ressourcen anderswo (beim Programmierer, der Übersichtlichkeit etc.).
Ein gesunder Mittelweg ist da das Beste.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragMo, Jun 09, 2008 19:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Was solll man dazu sagen? Stimmt.

P.S.: Ich lade trotzdem nichts in Schleifen Wink

markus

BeitragDi, Jun 10, 2008 0:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Also danke nomal für die vielen Antworten. Auch wenn es nicht DEN Unterschied zu machen scheint, wie ich die Bilder nun lade mach ich das glaube ich jetzt mal so wie vorgeschlagen ein wenig anders. Ist ja auch nicht zuletzt Übung für mich. Und da das Spiel sowieso ziemlich weit ist macht der Mehraufwand denke ich auch nicht mehr viel aus ^^
Also Danke nomal Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group