Komischer Fehler beim laden der Sprites

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Komischer Fehler beim laden der Sprites

Beitrag von Janiboy »

Hi Leute,
nachdem ich euch jetzt mal eine Zeit lang mit meinen nervigen Anfängerfragen verschont habe, habe ich nun schon wieder ein Problem. Ich möchte eine Animation erstellen, auf die altbewährte Weise wies auch schon vorher geklappt hat und der zeigt einen Fehler beim Laden von Fighter1. :bluescreen: Code:

Code: Alles auswählen

If InitSprite()=0 
EndIf 
If InitKeyboard()=0  
EndIf 
If InitSprite3D()=0 
EndIf 
If InitMouse()=0 
EndIf 

If OpenScreen(640, 480, 16, "Mein Spiel")=0 
EndIf 


If LoadSprite(0, "Fighter1.bmp" ,0)=0 
EndIf 
If LoadSprite(1, "Fighter2.bmp" ,0)=0 
EndIf 
If LoadSprite(2, "Fighter3.bmp" ,0)=0 
EndIf 

TransparentSpriteColor(0, 255, 0, 128) 
TransparentSpriteColor(1, 255, 0, 128) 
TransparentSpriteColor(2, 255, 0, 128) 

Repeat 
If IsScreenActive() 
ClearScreen(0,0,0) 
DisplayTransparentSprite(AniFrame, x, y) 
FlipBuffers() 
Delay(200) 
AniFrame + 1 
If AniFrame => 2 : AniFrame = 0 : EndIf 

ExamineKeyboard() 

If KeyboardPushed(#PB_Key_Left) 
x-1 
EndIf 

If KeyboardPushed(#PB_Key_Right) 
x+1 
EndIf 

If KeyboardPushed(#PB_Key_F5) 
x+13 
EndIf 

If KeyboardPushed(#PB_Key_F6) 
y-13 
x+13 
EndIf 
EndIf
Könnt ihr mir helfen? (Sorry, vergaß wie die codetags gehen :oops:)
Benutzeravatar
SDX
Beiträge: 95
Registriert: 14.01.2005 18:37
Wohnort: Bremen
Kontaktdaten:

Beitrag von SDX »

Was für einen Fehler zeigt er denn?

Du kannst Dir die 3 TransparentSpriteColor sparen, wenn Du einfach eine Zeile TransparentSpriteColor(-1, 255, 0, 128) schreibst. Im Allgemeinem würde ich auch die Sprites nicht so Nummerieren sonder die via #PB_Any nummerieren lassen.
Und das IF bei den Inits kannst Du Dir auch sparen, wenn Du nicht ne Fehlermeldung ausgeben willst, z.B.

Code: Alles auswählen

If InitSprite()=0 
EndIf 
wird zu

Code: Alles auswählen

If InitSprite()=0 
  MessageRequester("Fehler","Sprite"):End
EndIf 
.oO SDX Oo.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Nun ja, er definiert den Fehler nicht. Die Kompilierung beginnt und auf einmal bricht es ab und diese Zeile ist markiert. Was kann das sein?
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

UUps, hab wohl zu oft geklickt :oops:
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Welche Zeile ist markiert?

Wegen Dreifach-Post: Schick mal ne PN an einen Moderator, damit er die zwei überflüssigen Posts löscht.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Folgende Zeile ist als Fehler markiert:

If LoadSprite(0, "Fighter1.bmp" ,0)=0
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

SDX hat geschrieben:Im Allgemeinem würde ich auch die Sprites nicht so Nummerieren sonder die via #PB_Any nummerieren lassen.
das, lieber kollege, ist wohl geschmackssache ;)

ich bin sogar ziemlich froh, wenn ein starty seine sprites anständig nummeriert,
anstatt mit irgendwelchen abstrakten methoden durcheinander zu geraten...

@Janiboy

also, wenn du den debugger anhast, und er wirklich nur abbricht,
dann ist wahrscheinlich die datei irgendwie kaputt.

mal den fighter1 nochmal neu, bzw. probier erstmal NUR den Dateinamen zu verändern.
(ich meine, eine andere bmp laden...)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Beachte auch, dass die Maße des BMPs am Besten ein Vielfaches von 2 sein sollten. zB 2x2, 4x4, 8x8, 16x16 etc.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

[edit]im zustand der trunkenheit geschriebene profanität gelöscht.
Zuletzt geändert von Kaeru Gaman am 13.03.2005 10:26, insgesamt 1-mal geändert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
SDX
Beiträge: 95
Registriert: 14.01.2005 18:37
Wohnort: Bremen
Kontaktdaten:

Beitrag von SDX »

@Janiboy: Kannst Du mal den kompletten Code posten? Am besten irgendwo zum saugen mit BMPs (und btw... ich würde auch lieber PNGs benutzen).

@Kaeru Gaman: Achte bitte auf Deinen Ton, Du schweifst schon wieder ins provokativ Unfreundliche :wink:

@Laurin: Kaeru Gaman hat`s schon angedeutet, ein Sprite mit ner 2er-Potenz als Kantenlänge (sprich 16x16, 32,x32, etc..) sollte man bei Sprite3D benutzen, da es 3D-Karten gibt, die nur mit solchen Bildern was anfangen können. Soweit ich das festgestellt habe, laufen auf den aktuellen GraKa´s aber auch bei Sprite3D Bilder mit beliebigen Kantenlängen :mrgreen:
.oO SDX Oo.
Antworten