我正在为我正在进行的项目设计一个Breakout风格的游戏。我刚刚完成球和桨的实施,并且在实施游戏砖时遇到了一些麻烦。我有一张砖块的图片,我想把它放在游戏中。为此,我需要一个砖块网格,我正在考虑声明一个2D数组的图片框(所以我可以分配砖块的图片),但我只能声明数组。这是我的代码行:
Dim Bricks(9, 9) As PictureBox
所以,我的问题是:如何访问每个图片框并分配砖的图像?有更快的方法吗?谢谢,非常感谢您的帮助。
答案 0 :(得分:0)
请注意,在创建Bricks
数组后,此数组仍为空,即其所有元素都为Nothing
。您需要将表单上的PictureBox分配给此数组,除非您想要反过来并动态创建图片框。
在第一种情况下做这样的事情:
Bricks(0,0) = pictureBox1
Bricks(0,1) = pictureBox2
...
或使用循环
For x As Integer = 0 To 9
For y As Integer = 0 To 9
Bricks(x, y) = Controls("pictureBox" & (10 * x + y))
Next
Next
或(10 * y + x)
取决于您选择的顺序。
在另一种情况下(自动创建图片框)
For x As Integer = 0 To 9
For y As Integer = 0 To 9
'Create and initialize the PictureBox
Dim pb AS New PictureBox
pb.Size = New Size(30, 30)
pb.Location = New Point(20 + 30 * x, 20 + 30 * y)
pb.Image = myinitialImage
AddHandler pb.Click, AddressOf HandlePictureClick
'Assign the PictureBox to the array
Bricks(x, y) = pb
'Add the PictureBox to the Form
Controls.Add(pb)
Next
Next
现在您可以分配这样的图片
Bricks(x, y).Image = myPicture