IncludeBinary (Save Sprite)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

IncludeBinary (Save Sprite)

Beitrag von Green Snake »

Hallo zusammen

habe hier eine frage, aus der ich einfach nicht schlau werde, wiso ein fehler kommt.

Code: Alles auswählen

InitSprite()

Bild: IncludeBinary "Bild.bmp"
CatchSprite (0, ?Bild)

Select MessageRequester("Entpacken?", "Wollen Sie das Bild entpacken?", #MB_YESNO|#MB_ICONINFORMATION)
  Case #IdYes
    SaveSprite(0,"Bild.bmp")
  Case #IdNo
    End
EndSelect
]

was stimmt an dem code nicht? bzw warum funktioniert er nicht?
muss man das anders machen?
-.-"
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag von Ynnus »

Solche Includes packt man besser in Data-Sections und dann am Ende des Quellcodes, nicht mitten drinne.

EDIT: Afaik sollte ein Screen vorhanden sein um mit Sprites zu handlen. Also wirst du wohl vorher einen Screen erstellen müssen bevor du catchst oder speicherst.
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Wenn du keinen Screeen willst, dann nimm CatchImage und Sa
veImage! :)
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

MIt image gehts

Beitrag von Green Snake »

hallo

komisch, mit catchimage und saveimage gehts, jedoch nicht mit catchsprite und savesprite.

woran liegt das?

danke dir sunny

und speziellen dank an leo, wegen der idee mit dem image
-.-"
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Du brauchst 'n screen für Sprites. Außerdem packst Du Includebinaries innerhalb des Codes in Datasection und Enddatasection .. Ansonsten ans Ende damit

Code: Alles auswählen

InitSprite() 

OpenWindow(0,0,0,200,200,#PB_WINDOW_SCREENCENTERED,"Fenster")
OpenWindowedScreen(WindowID(0),0,0,WindowWidth(),WindowHeight(),1, 0, 0)

CatchSprite (0, ?Bild) 

DataSection
Bild:
IncludeBinary "d:\Bild.bmp" 
EndDataSection

Select MessageRequester("Entpacken?", "Wollen Sie das Bild entpacken?", #MB_YESNO|#MB_ICONINFORMATION) 
  Case #IdYes 
    SaveSprite(0,"d:\Bild1.bmp") 
  Case #IdNo 
    End 
EndSelect

;Bild: IncludeBinary "d:\Bild.bmp" 

‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Ok danke

Beitrag von Green Snake »

ok danke

danke euch allen
-.-"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

@bobobo

auch wenn das ding am ende includet wird, muss es vom code getrennt werden.

also, endweder ein End hinter den Code, oder ein DataSection vor das Label.
(oder beides, das wär sauber)

sonst läuft das prog nämlich weiter, und die CPU versucht, die Daten auszuführen -> Absturz
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@Kaeru Gaman
Ich glaube Du hast da was übersehen, die Stelle die Du meinst, ist auskommentiert. Das IncludeBinary steht in einer DataSection "

Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

@Kaeru u.s.w.

hier stürzt aber nichts ..

aber recht hast Du wohl trotzdem

@ts-soft
Das hatte ich da unten nur semikoliert hingeschrieben um zu zeigen wo man sowas hinpacken kann.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ja, das semikolon war wohl nicht ganz in mein bewußtsein gedrungen...

aber das problem ist trotzdem real, ich hatte da erst vor kurzem drauf hingewiesen,
weil ein kollege immer ne win-fehlermeldung am programmende bekam...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten