sprite wird nicht angezeigt

Anfängerfragen zum Programmieren mit PureBasic.
django29
Beiträge: 7
Registriert: 03.03.2010 22:19

sprite wird nicht angezeigt

Beitrag von django29 »

hi pb-coder,
hab wieder ein problem -.-
ich schreib grad meinen vokabelkasten von BB in PB um weil er in BB ziemlich larm war, für diesen brauch ich bilder, also lad ich die so:

Code: Alles auswählen

lek1 = LoadSprite(#PB_Any,"gfx\1lek.bmp") 
lek12 =LoadSprite(#PB_Any,"gfx\1lek2.bmp")
lek2 = LoadSprite(#PB_Any,"gfx\2lek.bmp")
lek22 =LoadSprite(#PB_Any,"gfx\2lek2.bmp")
wasser =LoadSprite(#PB_Any,"gfx\wasser.bmp")
caesar =LoadSprite(#PB_Any,"gfx\caesar.bmp")
cicero =LoadSprite(#PB_Any,"gfx\cicero.bmp")
einleit =LoadSprite(#PB_Any,"gfx\einleit.bmp")
ende =LoadSprite(#PB_Any,"gfx\ende.bmp")
ende2 =LoadSprite(#PB_Any,"gfx\ende2.bmp")
lg1 = LoadSprite(#PB_Any,"gfx\lg1.bmp")
lg2 = LoadSprite(#PB_Any,"gfx\lg2.bmp")
...
Repeat
FlipBuffers() 
    ExamineKeyboard()
    ClearScreen(RGB(0, 0, 0))
      StartDrawing(ScreenOutput())
      DisplaySprite(einleit,0,0)
      
      
      
      StopDrawing()
    
  Delay(1)
  Until KeyboardPushed(#PB_Key_Escape)
zu meinem problem: kleinere bilder wie z.b. lek1, lek12, lek22 usw. werden einwandfrei geladen, aber ein größeres bild wie cicero, einleit und caesar werden nicht gezeichnet. da kommt immer:
[ERROR] The specified #Sprite is not initialized.
weis wer warum?? liegts vll. daran weil einleit, cicero und caesar zu groß sind?? die größen sind:
einleit(80,6 kb), caesar(44,1 kb), cicero (51,7 kb)
vielen dank,
django29
Win 7, purebasic 4.41
Chip : Intel Q8300
Graka : NVidia gtx 260
Mozilla 3.6
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: sprite wird nicht angezeigt

Beitrag von Kaeru Gaman »

nuja... das ist etwas schwierig zu raten, weil wir ja nicht auf deine mühle gucken können.
normal würde ich tippen, dass der ordner nicht gefunden wird, aber wenn du sagst dass die anderen grafix geladen werden, kanns das ja nicht sein.

ich würd erstmal jeden Load Iffen, damit man den Fehler einkreisen kann.

ein Bug in deinem Mainloop: DisplaySprite muss nicht in einem Drawing-Block stehen, das macht es nur unnötig langsam.

und eine Kleinigkeit: Flippen kann man zum Schluss.
das macht zwar keinen qualitativen Unterschied, aber es hilft fehler zu vermeiden.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
django29
Beiträge: 7
Registriert: 03.03.2010 22:19

Re: sprite wird nicht angezeigt

Beitrag von django29 »

erstmal danke für den drawblock-tipp und ihc hab die fehlerquelle gefunden. die bilder waren kompriemiert -.-
trotzdem danke...
mfg
django29
Win 7, purebasic 4.41
Chip : Intel Q8300
Graka : NVidia gtx 260
Mozilla 3.6
Benutzeravatar
jojo1541
Beiträge: 431
Registriert: 15.09.2007 17:12
Wohnort: Irgendwo im Nirgendwo

Re: sprite wird nicht angezeigt

Beitrag von jojo1541 »

@Kaeru: Muss nicht? Wenn ich Sprites in einem Draw-Block anzeigen lasse, dann kriege ich die nie angezeigt.
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: sprite wird nicht angezeigt

Beitrag von Kaeru Gaman »

ja sag ich doch...? ich habs ewig nicht mehr ausprobiert, was genau jetzt wann wo passiert.
kann auch sein dass es je nach OS-Version und Grafikkarte völlig unterschiedliche Effekte verursacht.
aber die Sprite-Befehle sind keine Drawing-Befehle, also gehören sie auch nicht in einen Drawing-Block.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten