Public Class Form1
Structure player
Dim intXSpeed As Integer
Dim intYSpeed As Integer
Dim intScore As Integer 'I don't know what these do
Dim intLives As Integer
Dim blnBoost As Boolean
End Structure
Dim MySnake() As Snake
Dim MySnake2() As Snake
Dim blnDimensioned As Boolean
Dim lngPosition As Long
Dim intBody As Integer
Dim plSnake As player
Dim pl2Snake As player
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With Me
.BackColor = Color.Black
.DoubleBuffered = True
.KeyPreview = True
.MaximizeBox = True
.Text = "Snaked"
.WindowState = FormWindowState.Maximized
End With
Dim intName As Integer
'ReDim MySnake(2)
intName = InputBox("Type in your name.")
End Sub
Sub StartGame()
Randomize()
ReDim MySnake(MySnake.Length)
ReDim MySnake2(MySnake2.Length)
For IntRCount = 0 To MySnake2.Length - 1
MySnake2(IntRCount) = New Snake()
'AddHandler MySnake(IntRCount).Click, AddressOf AnyLand_click ' if you click on a single snake piece
'AddHandler MySnake(IntRCount).KeyPress, AddressOf Form1_KeyPress
MySnake2(IntRCount).BackgroundImageLayout = ImageLayout.Stretch
MySnake2(IntRCount).FlatStyle = FlatStyle.Popup
MySnake2(IntRCount).Width = 15
MySnake2(IntRCount).Height = 15
MySnake2(IntRCount).Left = 15
MySnake2(IntRCount).Top = IntRCount * 15 + 100
Me.Controls.Add(MySnake2(IntRCount))
MySnake2(IntRCount).BackColor = Color.Red 'Change to a snake picture
Next
For IntRCount = 0 To MySnake.Length - 1
MySnake(IntRCount) = New Snake()
'AddHandler MySnake(IntRCount).Click, AddressOf AnyLand_click ' if you click on a single snake piece
'AddHandler MySnake(IntRCount).KeyPress, AddressOf Form1_KeyPress
MySnake(IntRCount).BackgroundImageLayout = ImageLayout.Stretch
MySnake(IntRCount).FlatStyle = FlatStyle.Popup
MySnake(IntRCount).Width = 15
MySnake(IntRCount).Height = 15
MySnake(IntRCount).Left = 115
MySnake(IntRCount).Top = IntRCount * 15 + 100
Me.Controls.Add(MySnake(IntRCount))
MySnake(IntRCount).BackColor = Color.Red 'Change to a snake picture
Next
End Sub
Private Sub btnStart_Click(sender As System.Object, e As System.EventArgs) Handles btnStart.Click
Call StartGame()
'ReDim Preserve MySnake(MySnake.Length - 1)
'ReDim Preserve MySnake2(MySnake2.Length - 1)
btnInstruct.Visible = False
btnStart.Visible = False
btnGrow.Visible = True
picGrow.Visible = True
End Sub
Private Sub btnInstruct_Click(sender As System.Object, e As System.EventArgs) Handles btnInstruct.Click
MessageBox.Show("To control snake, use the number pad. 4 is left, 6 is right, 5 is down, and 8 is up.")
MessageBox.Show("Must click Grow before moving.")
'Figure out how to make paragraph form
End Sub
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress, btnStart.KeyPress, btnGrow.KeyPress
If tmrStart.Enabled = False Then
tmrStart.Enabled = True
End If
If e.KeyChar = "s" Then
plSnake.intYSpeed = 6
plSnake.intXSpeed = 0
ElseIf e.KeyChar = "w" Then
plSnake.intYSpeed = -6
plSnake.intXSpeed = 0
ElseIf e.KeyChar = "d" Then
plSnake.intXSpeed = 6
plSnake.intYSpeed = 0
ElseIf e.KeyChar = "a" Then
plSnake.intXSpeed = -6
plSnake.intYSpeed = 0
End If
Me.Text = e.KeyChar
If e.KeyChar = "2" Then
pl2Snake.intYSpeed = 6
pl2Snake.intXSpeed = 0
ElseIf e.KeyChar = "8" Then
pl2Snake.intYSpeed = -6
pl2Snake.intXSpeed = 0
ElseIf e.KeyChar = "6" Then
pl2Snake.intXSpeed = 6
pl2Snake.intYSpeed = 0
ElseIf e.KeyChar = "4" Then
pl2Snake.intXSpeed = -6
pl2Snake.intYSpeed = 0
End If
End Sub
Private Sub btnGrow_Click(sender As System.Object, e As System.EventArgs) Handles btnGrow.Click
'ReDim Preserve MySnake(MySnake.Length - 1)
'ReDim Preserve MySnake2(MySnake2.Length - 1)
btnGrow.Visible = False
End Sub
Private Sub tmrStart_Tick(sender As System.Object, e As System.EventArgs) Handles tmrStart.Tick, btnGrow.KeyPress, btnStart.KeyPress
For intC As Integer = 0 To MySnake.Length - 1
MySnake(intC).intLastX = MySnake(intC).Left 'This is where the error is coming from
MySnake(intC).intLastY = MySnake(intC).Top
MySnake2(intC).intLastX = MySnake2(intC).Left 'This is where the error is coming from
MySnake2(intC).intLastY = MySnake2(intC).Top
If intC = 0 Then
MySnake(intC).Top += plSnake.intYSpeed
MySnake(intC).Left += plSnake.intXSpeed
MySnake2(intC).Top += pl2Snake.intYSpeed
MySnake2(intC).Left += pl2Snake.intXSpeed
Else
MySnake(intC).Top = MySnake(intC - 1).intLastY
MySnake(intC).Left = MySnake(intC - 1).intLastX
MySnake2(intC).Top = MySnake2(intC - 1).intLastY
MySnake2(intC).Left = MySnake2(intC - 1).intLastX
End If
Next
If picGrow.Bounds.IntersectsWith(MySnake(0).Bounds) Then
picGrow.Top = getRandom(Me.Height, 1)
picGrow.Left = getRandom(Me.Width, 1)
' Call StartGame()
ReDim Preserve MySnake(MySnake.Length)
MySnake(MySnake.Length - 1) = New Snake()
'AddHandler MySnake(IntRCount).Click, AddressOf AnyLand_click ' if you click on a single snake piece
'AddHandler MySnake(IntRCount).KeyPress, AddressOf Form1_KeyPress
MySnake(MySnake.Length - 1).BackgroundImageLayout = ImageLayout.Stretch
MySnake(MySnake.Length - 1).FlatStyle = FlatStyle.Popup
MySnake(MySnake.Length - 1).Width = 15
MySnake(MySnake.Length - 1).Height = 15
MySnake(MySnake.Length - 1).Left = 15
MySnake(MySnake.Length - 1).Top = (MySnake.Length - 1) * 15 + 100
Me.Controls.Add(MySnake(MySnake.Length - 1))
MySnake(MySnake.Length - 1).BackColor = Color.Green
'Change to a snake picture
End If
If picGrow.Bounds.IntersectsWith(MySnake2(0).Bounds) Then
picGrow.Top = getRandom(Me.Height, 1)
picGrow.Left = getRandom(Me.Width, 1)
'Call StartGame()
ReDim Preserve MySnake2(MySnake2.Length)
MySnake2(MySnake2.Length - 1) = New Snake()
'AddHandler MySnake(IntRCount).Click, AddressOf AnyLand_click ' if you click on a single snake piece
'AddHandler MySnake(IntRCount).KeyPress, AddressOf Form1_KeyPress
MySnake2(MySnake2.Length - 1).BackgroundImageLayout = ImageLayout.Stretch
MySnake2(MySnake2.Length - 1).FlatStyle = FlatStyle.Popup
MySnake2(MySnake2.Length - 1).Width = 15
MySnake2(MySnake2.Length - 1).Height = 15
MySnake2(MySnake2.Length - 1).Left = 115
MySnake(MySnake2.Length - 1).Top = (MySnake2.Length - 1) * 15 + 100
Me.Controls.Add(MySnake(MySnake.Length - 1))
MySnake(MySnake.Length - 1).BackColor = Color.Green
Change to a snake picture
End If
End Sub
Function getRandom(ByVal intMax As Integer, ByVal intMin As Integer) As Integer
Return (Int((intMax - intMin + 1) * Rnd() + intMin))
End Function
Sub moveboost(ByVal intx As Integer, ByVal inty As Integer)
picGrow.Top = intx
picGrow.Left = inty
End Sub
End Class