Seite 1 von 2

Wieder Probleme!

Verfasst: 02.01.2005 22:24
von Janiboy
Hi Leute. Sorry, dass ich euch mit ständigen Fragen nerve, aber ich find einfach keine Lösung! Was ist an dem Code falsch, dass der nicht funktioniert?

Code:

f 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, "Hamster1.bmp" ,0)=0
EndIf
If LoadSprite(1, "Hamster2.bmp" ,0)=0
EndIf
If LoadSprite(2, "Hamster3.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
Until KeyboardPushed(#PB_KEY_ESCAPE)

Verfasst: 02.01.2005 22:32
von freedimension
Bitte aussagekräftigeren Titel wählen und Code-Tags verwenden. Wenn du dann noch erklären würdest was der Code genau machen soll wäre das ein deutlicher Schritt Richtung perfekter Post ;)

Verfasst: 02.01.2005 22:32
von Janiboy
Ok, sorry, problem schon gelöst.

Verfasst: 02.01.2005 22:34
von Janiboy
Ein süßer kleiner Hamster soll über den Bildschirm tanzen ;)!

Verfasst: 02.01.2005 22:54
von vonTurnundTaxis

Code: Alles auswählen

If InitSprite()=0
EndIf
If InitKeyboard()=0
EndIf
If InitSprite3D()=0
EndIf
If InitMouse()=0
EndIf 
Wozu soll denn DAS gut sein?

Verfasst: 02.01.2005 23:21
von Janiboy
Nun ja, ich hab schon mal alles initialisiert, wenn ichs mal erweitere ;).

Verfasst: 02.01.2005 23:24
von vonTurnundTaxis
Nein, ich meine, was bringt es, wenn du überpfüfst, ob das Initialisieren nicht geklappt hat? Wenn das der Fall ist, passiert ja nichts!
Du könntest diese Überprüfung weglassen!

Verfasst: 02.01.2005 23:27
von traumatic
Janiboy hat geschrieben:Nun ja, ich hab schon mal alles initialisiert, wenn ichs mal erweitere ;).
Die Frage war wohl eher: "Wenn Du schon If/EndIf verwendest, warum dann nicht auch das Ergebnis auswerten?"

Andernfalls würde ja auch

Code: Alles auswählen

InitSprite() : InitKeyboard() : InitSprite3D() : InitMouse()
reichen - von der Sinnhaftigkeit mal abgesehen...


EDIT: Zu spät...

Verfasst: 02.01.2005 23:32
von orange-blue
ich schätze das du alle 3 animations stuffen anzeigen willst also würde ich mal das hier probieren:

Code: Alles auswählen

AniFrame + 1 
If AniFrame => 3 : AniFrame = 0 : EndIf
dann finde ich ist das delay irgenwie unsinnig ist:
da wird das ganze programm lansamer so du kannst die animationsgeschwindigkeit nicht unabhängig von der abfrage der tastatur und der bewegung der Figur(Das würd ich sowieso ganz anders lösen, am einfachsten per zeitdifferenz oder komplizierter mit cpu geschwindigkeitsabfragen :mrgreen: ).
Edit: Wenn du schon so abfrage machst würde ich auch ne messagebox benutzten um den fehler auszugeben, und das programm per End schließen

Verfasst: 02.01.2005 23:35
von Janiboy
Ich hab schon öfter gehört, dass dieses =0 unsinnig ist, aber manches funktioniert manches einfach nicht.