我正在为我目前正在做的一个项目设计一款Breakout风格的游戏。我刚刚完成了执行球和球拍,我有一些麻烦,执行砖的游戏。我有一张砖头的图片,我想把它放到游戏中。为此,因为我需要一个砖块的网格,我正在考虑声明一个2D的图片框数组(所以我可以分配砖块的图片),但我只能声明数组。这是我的代码行:
Dim Bricks(9, 9) As PictureBox
所以,我的问题是:我如何访问每个图片盒并分配砖块的图像?有更快的方法吗?谢谢,非常感谢你的帮助。
注意,在创建Bricks
数组之后,该数组仍然是空的,即它的所有元素都是Nothing
。您需要将窗体上的图片框分配给这个数组,除非您想反过来动态地创建图片框。
在第一种情况下,像这样做:
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