Pixmap Löschen

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Matthias

Betreff: Pixmap Löschen

BeitragDo, Aug 23, 2007 18:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hay. Ich habe seit kurzen BMax. Leider vermisse ich den Befehl FreeImage (FreePixmap) wird jetzt mein speicher zu gemült immer wenn ich ein neues Pixmap lade?

Auserdem würde ich gerne wissen wollen was Strict und SuperStrict mir bringt.

Und dann habe ich da noch ein ziemliches Problem und zwar will ich den Bildschirm also den BackBuffer nach links Scrollen und dann ebend die entsprechenden Pixel rechts ansetzen die fehlen um ein Pixel by Pixel Scrolling zu erzeugen aber irgendwie ist der GrabBefehl sau langsam.

In Blitz3D hab ich dann einfach CopyRect benutz.
Gibt es da irgendeine Möglichkeit das doch noch hin zu bekommen?
Ich habe auch schon an Tiles gedacht nur die liegen ja im GFXSpeicher und bei einem Map von 4096x4096px sind das ja dann schon ca67MB.

Code: [AUSKLAPPEN]

Repeat
DrawImage Untergrund,0,0
GrabImage Untergrund,-1,0

flip
until KeyDown(KEY_ESCAPE)
end

Achso ja und dann noch Images Speichern wie geht das.
Bei Blitz3D war es SaveImage Image,"Bild.Bmp" Das functioniert bei BMax leider nicht mehr. Kann ich jetzt keine Bilder mehr speichern. Oder etwa nur mit einer Lib
 

ChristianK

BeitragDo, Aug 23, 2007 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
In BlitzMax gibt es Garbage Collection, alle Objekte werden also automatisch gelöscht, wenn sie nicht mehr benutzt werden. Dazu einfach das Objekt auf Null setzen.

Im Strict Modus müssen alle Variablen deklariert werden, bevor man sie benutzen kann. Mit Local oder Global.
SuperStrict fordert zusätzlich einen Typ beim Deklarieren ( Int, Float, ... ).

Bilder kannst du nicht direkt speichern, nur Pixmaps. Zum Beispiel mit SavePixmapPNG oder SavePixmapJPEG.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Farbfinsternis

BeitragDo, Aug 23, 2007 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie der Progamer schon schrieb genügt es Dein Image/Pixmap auf Null zu setzen (meinschoenesbild:TPixmap = Null) ... was Strict und SuperStrict machen hat er ebenso nett ausformuliert, ich möchte nur folgendes ergänzen: Weder Strict noch SuperStrict machen Dein Programm schneller oder Deine Freundin geiler ... es fient einzig und allein dazu Dich dazu zu zwingen Variablen korrekt zu deklarieren und somit einen besseren Programmierstil zu erreichen.

Wozu Du bei einem scrollenden, sich wiederholenden Background irgendwas grabben willst ist mir allerdings unklar ... wenn Dein Image myBG:TImage beim scrollen den Wert 1 erreicht, malst Du einfach dasselbe Bild an 0-myBG.width nochmal und scrollst weiter ... feddich.

Bilder speichern geht nur auf Pixmap, wenn Dein Bild als TImage geladen wurde wandelst Du es einfach um: myBPPXM:TPixmap = LoadPixMap(myBG:TImage) und sicherst es mit den entsprechenden Pixmap Funktionen.
Farbfinsternis.tv
 

Matthias

BeitragDo, Aug 23, 2007 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Vilen dank für euren schnellen und genauen Antworten. Very Happy Very Happy

BladeRunner

Moderator

BeitragDo, Aug 23, 2007 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Superstrict verändert auch das scoping-verhalten von Variablen, sprich ihren Gültigkeitsbereich.
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

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group