Computer Science Canada Niffty Snake game(work in progress)istillneedtomakesnakegrow |
Author: | MihaiG [ 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 |
Author: | MihaiG [ 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 ![]() ![]() ![]() ![]() ![]() |
Author: | Martin [ Wed Jan 05, 2005 1:46 am ] |
Post subject: | |
Please, use code tags. |