Ich versuche gerade einen Handgriff zu realisieren, den ich in Blitzbasic zuhauf verwendet habe: und zwar geht es darum, eine Bilddatei, welche mehrere Tiles nebeneinander hält, mit GrabImage auf verschiedene Image-Handles aufzusplitten.
Vielleicht habe ich ja einen Denkfehler?
• Gegeben sei eine tiles.bmp mit der Größe von 50*25 Pixeln, welche zwei 25*25-große Tile-Grafiken hat.
Code: Alles auswählen
#tileSize = 25
temp_PIC = LoadImage(#PB_Any,"tiles.bmp")
GrabImage(temp_PIC,tile1_PIC,0,0,#tileSize,#tileSize)
Aber jetzt wird's merkwürdig:
Wenn ich jetzt direkt mit
Code: Alles auswählen
GrabImage(temp_PIC,tile2_PIC,#tileSize,0,#tileSize,#tileSize)
Und es wird NOCH merkwürdiger:
Wenn ich bei folgendem Beispiel den ersten GrabImage-Befehl auskommentiere (also gar kein tile1_PIC erstelle), wird an der Stelle im Programm, wo tile1_PIC eigentlich angezeigt werden sollte, stattdessen tile2_PIC gezeichnet (tile1_PIC und tile2_PIC wurden jeweils als globale Variablen initialisiert).
Eine Fehlermeldung bekomme ich nicht (EnableExplicit() aktiviert). Beide GrabImage-Befehle geben eine Nummer zurück, habe es mit Debug überprüft.
Nur wenn ich beide GrabImage-Zeilen auskommentiere, meckert der Compiler.
Code: Alles auswählen
temp_PIC = LoadImage(#PB_Any,"tiles.bmp")
;GrabImage(temp_PIC,tile1_PIC,0,0,#tileSize,#tileSize)
GrabImage(temp_PIC,tile2_PIC,0,#tileSize,#tileSize,#tileSize)
Danke!