VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Mobile skate game code/help

by Adam Konk (1 Submission)
Category: Games
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Wed 15th January 2003
Date Added: Mon 8th February 2021
Rating: (1 Votes)

Mobile skate game code/help

API Declarations



Module

Public SnakeX(1 To 50) As Byte
Public SnakeY(1 To 50) As Byte
Public SnakeDir(1 To 50) As Byte
Public Score(0 To 10) As Integer
Public Rank(0 To 15) As Byte
Public Nom(0 To 15) As String * 3
Public Diff(0 To 15) As Byte
Public Data As String
Public i As Integer
Public i2 As Integer
Public Started As Boolean

Rate Mobile skate game code/help




Private Sub (name of form)_Change()
Diff(0) = (name of form).Value
Select Case DiffSlide.Value
Case 1 To 3 
DiffL.Caption = "Difficulty - " & DiffSlide.Value & " (Easy) "
Case 4 To 7
DiffL.Caption = "Difficulty - " & DiffSlide.Value & " (Medium) "
Case 8 To 10

End Select

End Sub



Main form, directions (The body and tail movements)

1 - the head move direction according to user
2 - the head has certain attributes - position and direction
3 - as the snake moves, these attributes are passed down the snake so that the rest follows on
Public SnakeLength As Byte 'length of snake
Public AppleX As Byte 'position of apple
Public AppleY As Byte
Public PrevHeadDir As Byte 'last direction of head
Public ChangedDir As Boolean 'true if user has changed direction in current iteration of the code

Private Sub Form....(KeyCode As Integer, Shift As Integer)
If ChangedDir Then Exit Sub 
PrevHeadDir = SnakeDir(1) 
Select Case KeyCode 'change direction
Case vbKeyUp
  If SnakeDir(1) = 2 Then
  Else
  SnakeDir(1) = 10
  End If
Case vbKeyRight
  If SnakeDir(1) = 3 Then
  Else
  SnakeDir(1) = 11
  End If
Case vbKeyDown
  If SnakeDir(1) = 0 Then
  Else
  SnakeDir(1) = 12
  End If
Case vbKeyLeft
  If SnakeDir(1) = 1 Then
  Else
  SnakeDir(1) = 13
  End If
End Select
If SnakeDir(1) - 10 = PrevHeadDir Then SnakeDir(1) = PrevHeadDir
ChangedDir = True
End Sub

Private Sub Form_KeyPress(KeyAscii As Integer)
If ChangedDir Then Exit Sub
PrevHeadDir = SnakeDir(1)
Select Case KeyAscii 'change direction
Case 56
  If SnakeDir(1) = 2 Then
  Else
  SnakeDir(1) = 10
  End If
Case 54
  If SnakeDir(1) = 3 Then
  Else
  SnakeDir(1) = 11
  End If
Case 50
  If SnakeDir(1) = 0 Then
  Else
  SnakeDir(1) = 12
  End If
Case 52
  If SnakeDir(1) = 1 Then
  Else
  SnakeDir(1) = 13
  End If
End Select
If SnakeDir(1) - 10 = PrevHeadDir Then SnakeDir(1) = PrevHeadDir
ChangedDir = True
End Sub

Private Sub Form_Load()
Randomize Timer
********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************= 4
Next
1   AppleX = Int(Rnd * 10)
   AppleY = Int(Rnd * 10)
    For i2 = 1 To SnakeLength + 1
        If AppleX = SnakeX(i2) Then
           If AppleY = SnakeY(i2) Then GoTo 1
        End If
    Next
    If Int(Rnd * 2) = 1 Then
     Block(AppleX & AppleY) = AppleG
     Else
     Block(AppleX & AppleY) = AppleR
    End If
ChangedDir = False
MoveT.Enabled = True  
End Sub



Private Sub MoveT_Timer() 'move the snake
On Error GoTo Crashed
'clear up tail of snake
If SnakeLength = 49 Then SnakeLength = 48 
Block(SnakeX(SnakeLength + 1) & SnakeY(SnakeLength + 1)) = LoadPicture()
Select Case SnakeDir(1)
Case 0 To 3
Block(SnakeX(1) & SnakeY(1)) = Head(SnakeDir(1)) 'move head
Case 10 To 13
Block(SnakeX(1) & SnakeY(1)) = Head(PrevHeadDir) 'move head
End Select

For i = 2 To SnakeLength - 1
   Select Case SnakeDir(i) 
     Case 0: Block(SnakeX(i) & SnakeY(i)) = BodyV
     Case 1: Block(SnakeX(i) & SnakeY(i)) = BodyH
     Case 2: Block(SnakeX(i) & SnakeY(i)) = BodyV
     Case 3: Block(SnakeX(i) & SnakeY(i)) = BodyH
     Case 10
        Select Case SnakeDir(i + 1)
        Case 1
        Block(SnakeX(i) & SnakeY(i)) = TurnLU
        Case 3
        Block(SnakeX(i) & SnakeY(i)) = TurnRU
        End Select
     Case 11
        Select Case SnakeDir(i + 1)
        Case 2
        Block(SnakeX(i) & SnakeY(i)) = TurnRU
        Case 0
        Block(SnakeX(i) & SnakeY(i)) = TurnRD
        End Select
     Case 12
        Select Case SnakeDir(i + 1)
        Case 1
        Block(SnakeX(i) & SnakeY(i)) = TurnLD
        Case 3
        Block(SnakeX(i) & SnakeY(i)) = TurnRD
        End Select
     Case 13
        Select Case SnakeDir(i + 1)
        Case 2
        Block(SnakeX(i) & SnakeY(i)) = TurnLU
        Case 0
        Block(SnakeX(i) & SnakeY(i)) = TurnLD
        End Select
   End Select
Next
'move tail
Select Case SnakeDir(SnakeLength)
   Case 0 To 3: Block(SnakeX(SnakeLength) & SnakeY(SnakeLength)) = Tail(SnakeDir(SnakeLength))
   Case 10 To 13: Block(SnakeX(SnakeLength) & SnakeY(SnakeLength)) = Tail(SnakeDir(SnakeLength) - 10)
End Select


For i = SnakeLength + 1 To 2 Step -1 'move rest of snake in memory
  SnakeX(i) = SnakeX(i - 1)
  SnakeY(i) = SnakeY(i - 1)
  SnakeDir(i) = SnakeDir(i - 1)
Next
Select Case SnakeDir(1) 'move head in memory
  Case 0: SnakeY(1) = SnakeY(1) - 1
  Case 1: SnakeX(1) = SnakeX(1) + 1
  Case 2: SnakeY(1) = SnakeY(1) + 1
  Case 3: SnakeX(1) = SnakeX(1) - 1
  Case 10: SnakeY(1) = SnakeY(1) - 1: SnakeDir(1) = 0
  Case 11: SnakeX(1) = SnakeX(1) + 1: SnakeDir(1) = 1
  Case 12: SnakeY(1) = SnakeY(1) + 1: SnakeDir(1) = 2
  Case 13: SnakeX(1) = SnakeX(1) - 1: SnakeDir(1) = 3
End Select
For i = 2 To SnakeLength
  If SnakeX(1) = SnakeX(i) Then
     If SnakeY(1) = SnakeY(i) Then GoTo Tangled
  End If
Next
If SnakeX(1) = AppleX Then 'place an apple
   If SnakeY(1) = AppleY Then
1   AppleX = Int(Rnd * 10)
   AppleY = Int(Rnd * 10)
    For i2 = 1 To SnakeLength + 1
        If AppleX = SnakeX(i2) Then
           If AppleY = SnakeY(i2) Then GoTo 1
        End If
    Next
    Score(0) = Score(0) + DiffForm.DiffSlide.Value * 50
    Caption = "Snakes 2 - " & Mid(Score(0), 1, Int(Score(0) / 10) + 1) & " Points"
    If Int(Rnd * 2) = 1 Then
     Block(AppleX & AppleY) = AppleG
     Else
     Block(AppleX & AppleY) = AppleR
    End If
    SnakeLength = SnakeLength + 1
   End If
End If
ChangedDir = False
Exit Sub

Crashed:  'go here if you crash
MoveT.Enabled = False
ScoreForm.LongL.Visible = False
ScoreForm.WellDoneL.Visible = True
ScoreForm.Visible = True
ScoreForm.Caption = "Game Over "
Exit Sub
Tangled:  'go here if you crash
MoveT.Enabled = False
ScoreForm.LongL.Visible = False
ScoreForm.WellDoneL.Visible = True
ScoreForm.Visible = True
ScoreForm.Caption = "Game Over - Your snake is tied in a not!"
End Sub


The Difficulty form,

Private Sub (form)_Click()
DiffForm.Visible = True
End Sub

Private Sub DiffL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartL.BorderStyle = 0
DiffL.BorderStyle = 1
ScoreL.BorderStyle = 0
QuitL.BorderStyle = 0
End Sub

Private Sub Form_Load()
If Started Then Exit Sub
Started = True
Diff(0) = 5
Nom(0) = InputBox("Enter name, 3 letter max")
On Error GoTo FillIn
Open "C:\Program Files\Snakes" For Input As #1
Close #1

For i = 1 To 10
Rank(i) = i


Next
Close #1
Exit Sub

FillIn: Iserts default names+scores if there is no file to be found
For i = 1 To 10
Select Case i
Case 1: Nom(i) = "AAA"
Case 2: Nom(i) = "BBB"
Case 3: Nom(i) = "CCC"
Case 4: Nom(i) = "DDD"
Case 5: Nom(i) = "EEE"
Case 6: Nom(i) = "FFF"
Case 7: Nom(i) = "GGG"
Case 8: Nom(i) = "HHH"
Case 9: Nom(i) = "III"
Case 10: Nom(i) = "JJJ"
End Select
Score(i) = (11 - i) * 100
Diff(i) = 11 - i
Rank(i) = i
Next
End Sub

Private Sub "Form_Unload(Cancel As Integer)
On Error Resume Next

For i = 1 To 10

Next
Close #1
End Sub

Private Sub QuitL_Click()
Unload MForm
End
End Sub

Private Sub QuitL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartL.BorderStyle = 0
DiffL.BorderStyle = 0
ScoreL.BorderStyle = 0
QuitL.BorderStyle = 1
End Sub

Private Sub ScoreL_Click()
ScoreForm.WellDoneL.Visible = False
ScoreForm.LongL.Visible = True
ScoreForm.Visible = True
End Sub

Private Sub ScoreL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartL.BorderStyle = 0
DiffL.BorderStyle = 0
ScoreL.BorderStyle = 1
QuitL.BorderStyle = 0
End Sub

Private Sub StartL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
StartL.BorderStyle = 1
DiffL.BorderStyle = 0
ScoreL.BorderStyle = 0
QuitL.BorderStyle = 0
End Sub


Private Sub Form_Load()
GForm.MoveT.Enabled = False 'stop game
If GForm.Visible = True Then InputScore 'put score in top ten
DisplayScores 'show the scores
End Sub

Sub DisplayScores() 
Select Case Rank(0) 'depending on the players rank
Case 1
ScoreForm.WellDoneL.Caption = “message and ranking”
Case 2
ScoreForm.WellDoneL.Caption = “message and ranking”
Case 3
ScoreForm.WellDoneL.Caption = “message and ranking”
Case 11
ScoreForm.WellDoneL.Caption = “message and ranking”
Case Else
ScoreForm.WellDoneL.Caption = “message and ranking”
End Select
For i = 1 To 10
ScoreL(i).Caption = i & " - " & Nom(i) & " - Diff " & Diff(i) & " - " & Score(i) & " pts"
Next
ScoreL(0).Caption = Rank(0) & " - " & Nom(0) & " - Diff " & Diff(0) & " - " & Score(0) & " pts"
End Sub


Sub InputScore() 'this sorts out the scores
Rank(0) = 11 'start at bottom of table
Diff(0) = DiffForm.DiffSlide.Value
For i = 1 To 10 'loop through checking when score is beaten
Select Case Score(0)
  Case Is > Score(i) 'score is in top ten at rank i
    For i2 = 10 To i + 1 Step -1
    If i2 = 0 Then GoTo 3
    Score(i2) = Score(i2 - 1)
    Nom(i2) = Nom(i2 - 1)
    Diff(i2) = Diff(i2 - 1)
    Rank(i2) = Rank(i2 - 1)
3    Next
    Rank(0) = i
    Score(i) = Score(0)
    Nom(i) = Nom(0)
    Diff(i) = Diff(0)
    Rank(i) = Rank(0)
    GoTo 2
End Select
Next
2 ScoreForm.WellDoneL.Caption = “message and ranking”
Next
End Sub

Private Sub OK_Click()

Unload GForm 'make sure unload event occurs
MForm.Visible = True
ScoreForm.Caption = "Top Scores"
Unload ScoreForm
End Sub



Module

Public SnakeX(1 To 50) As Byte
Public SnakeY(1 To 50) As Byte
Public SnakeDir(1 To 50) As Byte 
Public Score(0 To 10) As Integer 
Public Rank(0 To 15) As Byte
Public Nom(0 To 15) As String * 3
Public Diff(0 To 15) As Byte
Public Data As String
Public i As Integer 
Public i2 As Integer
Public Started As Boolean




Download this snippet    Add to My Saved Code

Mobile skate game code/help Comments

No comments have been posted about Mobile skate game code/help. Why not be the first to post a comment about Mobile skate game code/help.

Post your comment

Subject:
Message:
0/1000 characters