Wenn du das ganze jetzt noch in Code-Tags setzt hättest, dann wärst du schon als Vollprofi durchgegangen...
Ich schau mir den Code gleich ma an...
//EDIT: Ich hab deinen Code mal etwas erweitert und verbessert:
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMovie()
Global kopfx.w
Global kopfy.w
Global wanzx.w
Global wanzy.w
Global speedx.w
Global speedy.w
kopfx = 400
kopfy = 300
; Du brauchst nur einen Geschwindigkeitswert, und der sollte dann auch verwendet werden,
; wenn du die entsprechende Variable schon deklarierst... ;)
speed = 2
OpenScreen(800,600,32,"Snake")
;Das hier solltest du machen, um zu verhindern, dass die Spielgeschwindigkeit "eiert" (der PC kann die Schleife ja
; unterschiedlich schnell durchlaufen, je nachdem wie er ausgelastet ist, sodass er sie zu oft pro Sekunde durchläuft)
SetFrameRate(60)
SetRefreshRate(60)
Repeat
ExamineKeyboard()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
DrawingMode(1)
FrontColor(255,15,0)
Box(kopfx,kopfy,10,10)
StopDrawing()
FlipBuffers()
If kopfx = 0
Break
ElseIf kopfx = 790
Break
EndIf
If kopfy = 0
Break
ElseIf kopfy = 590
Break
EndIf
If richtung = 1
kopfx + speed
ElseIf richtung = 2
kopfx - speed
ElseIf richtung = 3
kopfy + speed
ElseIf richtung = 4
kopfy - speed
EndIf
If KeyboardPushed(#PB_Key_Right)
richtung = 1
ElseIf KeyboardPushed(#PB_Key_Left)
richtung = 2
ElseIf KeyboardPushed(#PB_Key_Down)
richtung = 3
ElseIf KeyboardPushed(#PB_Key_Up)
richtung = 4
EndIf
;Falls der Spieler keinen Bock mehr auf Snake hat
If KeyboardPushed(#PB_Key_Escape)
Break
EndIf
;Windows entscheidet selbst, wie lange es Pause macht je nach CPU-Auslastung, und wir krallen uns nicht
; die gesamte CPU-Power ;)
Delay(0)
ForEver
CloseScreen()
MessageRequester("Snake","Game over!"+Chr(10)+"Bis zum nächsten Mal! :)")
Wenn du irgendetwas nicht verstehst, dann frags ruhig nochmal nach, Sinn der Sache ist ja nicht Copy-Paste, sondern dass du lernst, wie man Snake programmiert...
