Ola, tudo bem?
comecei á pouco a trabalhar com o visual studio tentei fazer um jogo tipo snake
o codigo é este, o firstsquare, secondsquare, thirdsquare e foursquare ja foram introduzidos na parte do design
basicamente controlamos com as down up right left e espaco para parar, e a tecla A adiciona quadrados no fim do ultimo quadrado, como ainda estou a fazer teste, testei apenas com o primeiro quadrado (square(1)) que é adicionado atrás do foursquare , mas quando clico START da erro e diz que square(1).Top = y(4) (encontra-se na linha 114) e diz ": A referência de objecto não foi definida como uma instância de um objecto"., desculpem se nao consegui exprimir bem , aguardo uma resposta!
cumprimentos
Public Class Form1
Dim x(30), y(30), i, cont, a, b As Integer
Dim key As String
Public square(100) As PictureBox
Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.Down Then
key = "Down"
Timer1.Enabled = True
Timer2.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
End If
If e.KeyCode = Keys.Up Then
key = "Up"
Timer2.Enabled = True
Timer1.Enabled = False
Timer3.Enabled = False
Timer4.Enabled = False
End If
If e.KeyCode = Keys.Right Then
key = "Right"
Timer3.Enabled = True
Timer1.Enabled = False
Timer2.Enabled = False
Timer4.Enabled = False
End If
If e.KeyCode = Keys.Left Then
key = "Left"
Timer4.Enabled = True
Timer3.Enabled = False
Timer2.Enabled = False
Timer1.Enabled = False
End If
If e.KeyCode = Keys.Space Then
Timer4.Enabled = False
Timer3.Enabled = False
Timer2.Enabled = False
Timer1.Enabled = False
End If
If e.KeyCode = Keys.A Then
addsquare()
i = i + 1
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'down
x(1) = firstsquare.Left
y(1) = firstsquare.Top
firstsquare.Top = firstsquare.Top + 20
End Sub
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
'up
x(1) = firstsquare.Left
y(1) = firstsquare.Top
firstsquare.Top = firstsquare.Top - 20
End Sub
Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
'rigth
x(1) = firstsquare.Left
y(1) = firstsquare.Top
firstsquare.Left = firstsquare.Left + 20
End Sub
Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
'left
x(1) = firstsquare.Left
y(1) = firstsquare.Top
firstsquare.Left = firstsquare.Left - 20
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
i = 0
secondsquare.Top = firstsquare.Top + 20
secondsquare.Left = firstsquare.Left
thirdsquare.Top = secondsquare.Top + 20
thirdsquare.Left = secondsquare.Left
foursquare.Top = thirdsquare.Top + 20
foursquare.Left = thirdsquare.Left
square(1) = New PictureBox
square(1).Width = 20
square(1).Height = 20
square(1).Left = foursquare.Left - 20
square(1).Top = foursquare.Top
End Sub
Private Sub firstsquare_Move(sender As Object, e As EventArgs) Handles firstsquare.Move
cont = 1
x(2) = secondsquare.Left
y(2) = secondsquare.Top
secondsquare.Left = x(1)
secondsquare.Top = y(1)
x(3) = thirdsquare.Left
y(3) = thirdsquare.Top
thirdsquare.Left = x(2)
thirdsquare.Top = y(2)
x(4) = foursquare.Left
y(4) = foursquare.Top
foursquare.Left = x(3)
foursquare.Top = y(3)
square(1).Top = y(4)
square(1).Left = x(4)
End Sub
Private Sub addsquare()
square(i) = New PictureBox
square(i).Width = 20
square(i).Height = 20
square(i).Left = foursquare.Left - 20
square(i).Top = foursquare.Top
square(i).BackColor = Color.Black
Me.Controls.Add(square(i))
End Sub
End Class
↧