Wieder Probleme!

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

Wieder Probleme!

Beitrag 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)
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag 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 ;)
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Ok, sorry, problem schon gelöst.
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Ein süßer kleiner Hamster soll über den Bildschirm tanzen ;)!
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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?
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Nun ja, ich hab schon mal alles initialisiert, wenn ichs mal erweitere ;).
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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!
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag 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...
orange-blue
Beiträge: 556
Registriert: 04.09.2004 22:23
Kontaktdaten:

Beitrag 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
Janiboy
Beiträge: 71
Registriert: 02.01.2005 15:22

Beitrag von Janiboy »

Ich hab schon öfter gehört, dass dieses =0 unsinnig ist, aber manches funktioniert manches einfach nicht.
Antworten