本文介绍了我的代码需要帮助的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我正在为我的班级项目做游戏蛇,我需要使用图片框,我现在卡在我无法解决的部分,在区域comida,私人子creat_mouse()我的.Top和。左边创建一个错误,说明
未处理的类型异常; System.NullReferenceException;发生在WindowsApplication2.exe中
附加信息:对象引用未设置为对象的实例。
$ b $我需要帮助,我不知道出了什么问题。
Sry bad english
Public Class Form1
#RegionSnake
Dim snake(1000)As PictureBox
Dim comp_cobra As Integer = -1
Dim esquerda_direita As Integer = 0
Dim cima_baixo As Integer = 0
Dim r As Random
PrivateSubcabeça()
comp_cobra + = 1
snake (comp_cobra)=新PictureBox
使用snake(comp_cobra)
.Height = 10
.Width = 10
.BackColor = Color.Black
.Top =(pb1 .Top + pb1.Bottom)/ 2
.Left =(pb1.Left + pb1.Right)/ 2
以
结束Me.Controls.Add(snake(com) p_cobra))
snake(comp_cobra).BringToFront()
compi_cobra()
compi_cobra()
End Sub
Private Sub Form1_KeyPress (发送者为对象,e为KeyPressEventArgs)处理Me.KeyPress
选择案例e.KeyChar
案例d
esquerda_direita = 10
cima_baixo = 0
案例 a
esquerda_direita = -10
cima_baixo = 0
Casew
esquerda_direita = 0
cima_baixo = -10
Cases
esquerda_direita = 0
cima_baixo = 10
End Select
End Sub
Private Sub Form1_Load(sender as Object,e As EventArgs)Handles Me .Load $ b $bcabeça()
Timer1.Start()
create_mouse()
End Sub
Private Sub compi_cobra()
comp_cobra + = 1
snake(comp_cobra)= New PictureBox
with snake(comp_cobra)
.Height = 10
.Width = 10
.BackColor = Color.Black
.Top = snake (comp_cobra - 1).Top
.Left = snake(comp_cobra - 1).Left + 10
End with
Me.Controls.Add(snake(comp_cobra))
snake (comp_cobra).BringToFront()
End Sub
Private Sub tsnake_Tick(sender As Object,e As EventArgs)处理Timer1.Tick
For i = comp_cobra To 1 Step -1
snake(i).Top = snake(i - 1).Top
snake(i).Left = snake(i - 1).Left
Next
snake(0).Top + = cima_baixo
snake(0).Left + = esquerda_direita
colide_parede()
comer_comida()
End Sub
#End Region
#RegionColisão
Private Sub colide_parede()
如果是snake(0).Left< pb1.Left然后
Timer1.Stop()
MsgBox(Perdeste Fagg)
结束如果
如果是蛇(0)。右> pb1.Right然后
Timer1.Stop()
MsgBox(Perdeste Fagg)
结束如果
如果是蛇(0).Bottom> pb1.Bottom然后
Timer1.Stop()
MsgBox(Perdeste Fagg)
结束如果
如果是snake(0).Top< pb1.Top然后
Timer1.Stop()
MsgBox(Perdeste Fagg)
结束如果
结束子
#End Region
#Regioncomida
Dim mouse As PictureBox
Private Sub create_mouse()
mouse = New PictureBox
使用鼠标
.Width = 10
。高度= 10
.BackColor = Color.Red
.Top = r.Next(pb1.Top,pb1.Left)
.Left = r.Next(pb1.Left,pb1.Right )
结束时
Me.Controls.Add(鼠标)
mouse.BringToFront()
结束次级
私人Sub comer_comida( )
如果snake(0).Bounds.IntersectsWith(mouse.Bounds)那么
compi_cobra()
mouse.Top = r.Next(pb1.Top,pb1.Bottom - 10)
mouse.Left = r.Next(pb1.Left,pb1.Right - 10)
结束如果
结束子
#结束地区
私人子按钮1_点击(发件人为Object,e As EventArgs)
End Sub
Private Sub pb1_Click(sender As Object,e As EventArgs)处理pb1.Click
结束子
私人子按钮2_Click(发件人作为对象,e作为EventArgs)
结束子
结束类
解决方案
So im doing the game snake for my class project, and i need to use the picturebox, im now stuck on a part that i cant resolve, in the Region "comida", private sub creat_mouse() my .Top and .Left creat an error that says
An unhandled exception of type ;System.NullReferenceException; occurred in WindowsApplication2.exe
Additional information: Object reference not set to an instance of an object.
i need help, i dont know what is wrong.
Sry bad english
Public Class Form1 #Region "Snake" Dim snake(1000) As PictureBox Dim comp_cobra As Integer = -1 Dim esquerda_direita As Integer = 0 Dim cima_baixo As Integer = 0 Dim r As Random Private Sub cabeça() comp_cobra += 1 snake(comp_cobra) = New PictureBox With snake(comp_cobra) .Height = 10 .Width = 10 .BackColor = Color.Black .Top = (pb1.Top + pb1.Bottom) / 2 .Left = (pb1.Left + pb1.Right) / 2 End With Me.Controls.Add(snake(comp_cobra)) snake(comp_cobra).BringToFront() compi_cobra() compi_cobra() End Sub Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress Select Case e.KeyChar Case "d" esquerda_direita = 10 cima_baixo = 0 Case "a" esquerda_direita = -10 cima_baixo = 0 Case "w" esquerda_direita = 0 cima_baixo = -10 Case "s" esquerda_direita = 0 cima_baixo = 10 End Select End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load cabeça() Timer1.Start() create_mouse() End Sub Private Sub compi_cobra() comp_cobra += 1 snake(comp_cobra) = New PictureBox With snake(comp_cobra) .Height = 10 .Width = 10 .BackColor = Color.Black .Top = snake(comp_cobra - 1).Top .Left = snake(comp_cobra - 1).Left + 10 End With Me.Controls.Add(snake(comp_cobra)) snake(comp_cobra).BringToFront() End Sub Private Sub tsnake_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick For i = comp_cobra To 1 Step -1 snake(i).Top = snake(i - 1).Top snake(i).Left = snake(i - 1).Left Next snake(0).Top += cima_baixo snake(0).Left += esquerda_direita colide_parede() comer_comida() End Sub #End Region #Region "Colisão" Private Sub colide_parede() If snake(0).Left < pb1.Left Then Timer1.Stop() MsgBox("Perdeste Fagg") End If If snake(0).Right > pb1.Right Then Timer1.Stop() MsgBox("Perdeste Fagg") End If If snake(0).Bottom > pb1.Bottom Then Timer1.Stop() MsgBox("Perdeste Fagg") End If If snake(0).Top < pb1.Top Then Timer1.Stop() MsgBox("Perdeste Fagg") End If End Sub #End Region #Region "comida" Dim mouse As PictureBox Private Sub create_mouse() mouse = New PictureBox With mouse .Width = 10 .Height = 10 .BackColor = Color.Red .Top = r.Next(pb1.Top, pb1.Left) .Left = r.Next(pb1.Left, pb1.Right) End With Me.Controls.Add(mouse) mouse.BringToFront() End Sub Private Sub comer_comida() If snake(0).Bounds.IntersectsWith(mouse.Bounds) Then compi_cobra() mouse.Top = r.Next(pb1.Top, pb1.Bottom - 10) mouse.Left = r.Next(pb1.Left, pb1.Right - 10) End If End Sub #End Region Private Sub Button1_Click(sender As Object, e As EventArgs) End Sub Private Sub pb1_Click(sender As Object, e As EventArgs) Handles pb1.Click End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) End Sub End Class
解决方案
这篇关于我的代码需要帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!