>我已经从学校设置了一个项目来设计蛇 VB.Net 但我正在努力动态添加用户控件,该控件充当蛇体内的点之一。每次我在蛇上加一个点,以前的就消失了。我认为这是由于我通过创建对象的新实例来覆盖前一个,但我找不到添加新实例的方法。
Dim body As New Dot
Sub AddToSnake(ByVal i As Integer)
'add 1 dot on to the back of the snake
body.Location = New Point(50 + i, 50)
body.Visible = True
Me.Controls.Add(body)
End Sub
我尝试使用 body(i) 和其他方法来添加对象的新实例,但卡住了。当需要新控件时,将调用子例程。
我认为这是由于我通过创建对象的新实例来覆盖前一个
您实际上并没有在任何地方创建新实例,您的代码只会创建Dot
的单个实例并修改单个实例在AddToSnake
中的位置。为了克服这个问题,请在AddToSnake
中创建一个新的Dot
实例。
也就是说,用户控件无论如何都不是正确的方法。您应该将蛇体绘制在PictureBox
控件上,并将身体维护为List(Of Point)
。然后,您只需在列表末尾添加新点即可。