如何声明2D数组来存储图片(使用图片框)

时间:2016-08-23 11:59:41

标签: arrays vb.net multidimensional-array

我正在为我正在进行的项目设计一个Breakout风格的游戏。我刚刚完成球和桨的实施,并且在实施游戏砖时遇到了一些麻烦。我有一张砖块的图片,我想把它放在游戏中。为此,我需要一个砖块网格,我正在考虑声明一个2D数组的图片框(所以我可以分配砖块的图片),但我只能声明数组。这是我的代码行:

Dim Bricks(9, 9) As PictureBox

所以,我的问题是:如何访问每个图片框并分配砖的图像?有更快的方法吗?谢谢,非常感谢您的帮助。

1 个答案:

答案 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