Animationen Erstellen

Anfängerfragen zum Programmieren mit PureBasic.
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Animationen Erstellen

Beitrag von Raphi »

Hallo, Ich habe ein Problem mit erstellen von animationenen

Code: Alles auswählen

InitSprite()
OpenScreen(640,480,16,"Name") 
For X = 1  To 10
LoadSprite(10+x,"Fass"+Str(x) + ".bmp",0)
TransparentSpriteColor(10+x,RGB(255,0,255))
Next


DisplayTransparentSprite(10+x,100,100)
PureBasic gibt immer den Fehler: The specified #sprite is not initialized aus

was mach ich falsch
Benutzeravatar
Kai
Beiträge: 264
Registriert: 29.09.2005 20:58
Computerausstattung: iMac 2019
Wohnort: Hannover
Kontaktdaten:

Re: Animationen Erstellen

Beitrag von Kai »

Raphi hat geschrieben:The specified #sprite is not initialized
Steht doch da. /:->
Eines der Sprites konnte nicht geladen werden.
Überprüfe vielleicht mal die Rückgabewerte von LoadSprite.
Außerdem empfehle ich dir absolute Pfadangaben bei LoadSprite zu benutzen.
So versucht LoadSprite ja die Sprites im aktuellen Ordner zu laden.
Der Compiler schmeißt die EXE im Debug Modus eh im Temp Ordner und wenn ich jetzt mal raten darf, sind deine Bitmaps im Projekt-Ordner richtig?
Meine Homepage - Aktuelle Projekte - Launcher
Letzte PB-Version - Window 7 x86
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Ja Die bitmaps sind alle im ordner in dem auch die Exe gespeichert ist.

Ich habs auch schon mal mit anderen Bildern versucht,
hat aber auch nicht geklappt!

Wie überprüft man den Rückgabewert von LoadSprite?
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Den kannst Du in eine Variable speichern, also z.B. so:

Code: Alles auswählen

value = LoadSprite(...)
Danach kannst Du den überprüfen, aber Du kannst auch direkt ein If verwenden und den Zwischenschritt sparen:

Code: Alles auswählen

If LoadSprite(...)
    ; ...
EndIf
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Animationen Erstellen

Beitrag von Kiffi »

Raphi hat geschrieben:was mach ich falsch
bedenke, dass x hinter dem Next gleich 11 ist.

Grüße ... Kiffi
a²+b²=mc²
Sven
Beiträge: 374
Registriert: 23.09.2004 12:01

Beitrag von Sven »

Genau!

Code: Alles auswählen

For X = 1  To 10 
LoadSprite(10+x,"Fass"+Str(x) + ".bmp",0) 
TransparentSpriteColor(10+x,RGB(255,0,255)) 
Next 
;x = 11

DisplayTransparentSprite(10+x,100,100)
;wäre dann Sprite 21, und das gibts nicht
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

Ich habs jetzt geändert, aber es gibt mir nur einen schwarzen bildschirm aus?
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Raphi hat geschrieben:Ich habs jetzt geändert, aber es gibt mir nur einen schwarzen bildschirm aus?
Bild
Windows 10 Pro, 64-Bit / Outtakes | Derek
Raphi
Beiträge: 175
Registriert: 06.08.2009 16:32
Computerausstattung: Intel Core 2 Duo Processor (2 x 3 Ghz), ATI Radeon HD 4870 (512 MB), 4 GB DDR-2 Ram, Microsoft Windows 7 Ultimate, MBox 2 Mini Soundkarte

Beitrag von Raphi »

??????????
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

in deinem code is ja nix drin, da kann an garnicht sagen, was du alles vergessen hast oder vielleicht nur weggelassen hast.

du musst auch den buffer flippen, damit du aufm front siehst was du vorher in den back displayed hast...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten