Niffty Snake game(work in progress)istillneedtomakesnakegrow
Author |
Message |
MihaiG
|
Posted: Tue Nov 16, 2004 3:47 pm Post subject: Niffty Snake game(work in progress)istillneedtomakesnakegrow |
|
|
the snake wont grow....you can increase speed by adjusting timer
heres the code long....
Const MaxSnakeLength As Integer = 100
Dim Snake(MaxSnakeLength) As Integer
Const SquareHeight As Integer = 240
Const SquareWidth As Integer = 240
Const BannerHeight As Integer = 480
Dim Direction As Integer
Const DirLeft As Integer = 1
Const DirRight As Integer = 2
Const DirUp As Integer = 3
Const DirDown As Integer = 4
Dim TimeCounter As Integer
Dim Score As Integer
Const Bonus As Integer = 100
Const TimeHidden As Integer = 70
Const TimeShown As Integer = TimeHidden + 50
Const Topinc = 240
Const Leftinc = 240
Private Sub CheckCrash()
Dim CrashedIntoItself As Boolean
CrashedIntoItself = False
' Now checking if snake crashed into itself
' By verifying if the head position equals the position of any other body segment
For i = 2 To Shape1.Count Step 1
If Shape1(Snake(1)).Left = Shape1(Snake(i)).Left And Shape1(Snake(1)).Top = Shape1(Snake(i)).Top Then
If Shape1(Snake(i)).Visible Then
CrashedIntoItself = True
End If
End If
Next i
If Shape1(Snake(1)).Top < 0 Or _
Shape1(Snake(1)).Left < 0 Or _
Shape1(Snake(1)).Left + Shape1(Snake(1)).Width > FormSnake.Width Or _
Shape1(Snake(1)).Top + Shape1(Snake(1)).Height > Line1.Y1 Or _
CrashedIntoItself Then
Timer1.Enabled = False
FormCrash.Show
End If
End Sub
Private Sub CheckGoodie()
If Shape1(Snake(1)).Left = Shape2.Left And Shape1(Snake(1)).Top = Shape2.Top And Shape2.Visible Then
Shape2.Visible = False
TimeCounter = 0
Score = Score + Bonus
End If
End Sub
Private Sub MoveDown()
' Move tail (last square) into new position
' Tail is always at Snake(Shape1.Count)
' Head is always at Snake(1)
Shape1(Snake(Shape1.Count)).Left = Shape1(Snake(1)).Left
Shape1(Snake(Shape1.Count)).Top = Shape1(Snake(1)).Top + SquareHeight
' Now the tail becomes the new head
tmp = Snake(Shape1.Count)
For i = Shape1.Count To 2 Step -1
Snake(i) = Snake(i - 1)
Next i
Snake(1) = tmp
CheckCrash
CheckGoodie
End Sub
Private Sub MoveLeft()
' Move tail (last square) into new position
' Tail is always at Snake(Shape1.Count)
' Head is always at Snake(1)
Shape1(Snake(Shape1.Count)).Top = Shape1(Snake(1)).Top
Shape1(Snake(Shape1.Count)).Left = Shape1(Snake(1)).Left - SquareWidth
' Now the tail becomes the new head
tmp = Snake(Shape1.Count)
For i = Shape1.Count To 2 Step -1
Snake(i) = Snake(i - 1)
Next i
Snake(1) = tmp
CheckCrash
CheckGoodie
End Sub
Private Sub MoveRight()
' Move tail (last square) into new position
' Tail is always at Snake(Shape1.Count)
' Head is always at Snake(1)
Shape1(Snake(Shape1.Count)).Top = Shape1(Snake(1)).Top
Shape1(Snake(Shape1.Count)).Left = Shape1(Snake(1)).Left + SquareWidth
' Now the tail becomes the new head
tmp = Snake(Shape1.Count)
For i = Shape1.Count To 2 Step -1
Snake(i) = Snake(i - 1)
Next i
Snake(1) = tmp
CheckCrash
CheckGoodie
End Sub
Private Sub MoveUp()
' Move tail (last square) into new position
' Tail is always at Snake(Shape1.Count)
' Head is always at Snake(1)
Shape1(Snake(Shape1.Count)).Left = Shape1(Snake(1)).Left
Shape1(Snake(Shape1.Count)).Top = Shape1(Snake(1)).Top - SquareHeight
' Now the tail becomes the new head
tmp = Snake(Shape1.Count)
For i = Shape1.Count To 2 Step -1
Snake(i) = Snake(i - 1)
Next i
Snake(1) = tmp
CheckCrash
CheckGoodie
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 38 Then
Direction = DirUp
ElseIf KeyCode = 40 Then
Direction = DirDown
ElseIf KeyCode = 37 Then
Direction = DirLeft
ElseIf KeyCode = 39 Then
Direction = DirRight
ElseIf KeyCode = 27 Then
End
ElseIf KeyCode = 80 Then
Timer1.Enabled = Not Timer1.Enabled
End If
End Sub
Private Sub Form_Load()
For i = 1 To Shape1.Count
Snake(i) = Shape1.Count - i
Next i
Direction = DirRight
TimeCounter = 0
Score = 1
End Sub
Private Sub Timer1_Timer()
If Direction = DirLeft Then
MoveLeft
ElseIf Direction = DirRight Then
MoveRight
ElseIf Direction = DirUp Then
MoveUp
ElseIf Direction = DirDown Then
MoveDown
End If
TimeCounter = TimeCounter + 1
If Not Shape2.Visible And TimeCounter = TimeHidden Then
Shape2.Left = RndX()
Shape2.Top = RndY()
Shape2.Visible = True
ElseIf Shape2.Visible And TimeCounter = TimeShown Then
Shape2.Visible = False
TimeCounter = 0
End If
Score = Score + 1
Label1.Caption = Score
End Sub
Private Function RndX()
RndX = (Int(33 * Rnd() + 1) - 1) * 240
End Function
Private Function RndY()
RndY = (Int(24 * Rnd() + 1) - 1) * 240
End Function |
|
|
|
|
|
Sponsor Sponsor
|
|
|
MihaiG
|
Posted: Tue Nov 16, 2004 3:51 pm Post subject: part 2 |
|
|
oh by the way you need to make the shapes....(figure it out)i need to make you do some of the work p.s. there are two forms... (snkae form, and crash form good luck |
|
|
|
|
|
Martin
|
Posted: Wed Jan 05, 2005 1:46 am Post subject: (No subject) |
|
|
Please, use code tags. |
|
|
|
|
|
|
|