Sub OnKeyDown
Temp = GraphicsWindow.LastKey
If (GameState = "GameOver") Then
If (GraphicsWindow.LastKey = "Space") Then
StartGame()
Else
If (GraphicsWindow.LastKey = "Escape") Then
GameState = "End"
Else
If (GraphicsWindow.LastKey = "D1") Then
GameDelay = 100
GraphicsWindow.ShowMessage("Pause du Jeu définie à 100ms","Vitesse Modifiée!")
Else
If (GraphicsWindow.LastKey = "D2") Then
GameDelay = 200
GraphicsWindow.ShowMessage("Pause du Jeu définie à 200ms","Vitesse Modifiée!")
Else
If (GraphicsWindow.LastKey = "D3") Then
GameDelay = 300
GraphicsWindow.ShowMessage("Pause du Jeu définie à 300ms","Vitesse Modifiée!")
Else
If (GraphicsWindow.LastKey = "D4") Then
GameDelay = 400
GraphicsWindow.ShowMessage("Pause du Jeu définie à 400ms","Vitesse Modifiée!")
Else
If (GraphicsWindow.LastKey = "D5") Then
GameDelay = 500
GraphicsWindow.ShowMessage("Pause du Jeu définie à 500ms","Vitesse Modifiée!")
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
Endif
Else
If (GraphicsWindow.LastKey = "Left") Then
Direction = -1
Else
If (GraphicsWindow.LastKey = "Right") Then
Direction = 1
EndIf
EndIf
EndIf
EndSub
Sub StartGame
Score = 0
Direction = 1
UpdateScore()
For Index=0 To 29
Temp = Array.GetValue("Blocks",Index)
Shapes.Move(Temp,0,Index*16)
Array.SetValue("BlockPositions",Index,0)
EndFor
For Index=0 To 5
Temp = Array.GetValue("Tail",Index)
Shapes.Move(Temp,20*16,Index*16)
Array.SetValue("TailPositions",Index,20)
EndFor
GameState = "Play"
EndSub
Sub DoGameLoop
If (GameState = "Play") Then
Score = Score + 1
UpdateScore()
For Index=0 To 28
Temp = Array.GetValue("BlockPositions",Index+1)
Array.SetValue("BlockPositions",Index,Temp)
EndFor
Array.SetValue("BlockPositions",29,Math.GetRandomNumber(38))
For Index=0 To 29
Temp = Array.GetValue("Blocks",Index)
Shapes.Move(Temp,Array.GetValue("BlockPositions",Index)*16,Index*16)
EndFor
For Index=0 To 4
Temp = Array.GetValue("TailPositions",Index+1)
Array.SetValue("TailPositions",Index,Temp)
EndFor
Array.SetValue("TailPositions",5,Array.GetValue("TailPositions",5)+Direction)
For Index=0 To 5
Temp = Array.GetValue("Tail",Index)
Shapes.Move(Temp,Array.GetValue("TailPositions",Index)*16,Index*16)
EndFor
Temp = Array.GetValue("TailPositions",5)
If (Temp=0 Or Temp = 39 Or Temp = Array.GetValue("BlockPositions",5)) Then
GameState = "GameOver"
EndIf
Program.Delay(GameDelay)
EndIf
EndSub