【发布时间】:2017-05-03 15:27:29
【问题描述】:
所以我正在做一个棋盘游戏,我想到的唯一想法就是用图片框制作棋盘。我的棋盘是每 32 个方格 26 个,这意味着我需要很多图片框才能做到这一点。
我想到了两种方法,但我不确定它们是否有效。
一种方法是将 832 个图片框实际放在我的表单上,然后遍历它们并填充数组,但这会使表单变得非常混乱和滞后。我在这上面手动写了一些代码,不知道它是否可以工作,但它只是为了有个想法:
For i = 831 To 0 Step -1
PictureBox.i
For e = arrMap(0, 0) To arrMap(25, 31)
arrMap(a, e) = PictureBox.i
If e = 32 Then
e = 0
a = a + 1
End If
Next
Next
我想到的另一种方法是将一个图片框放在正确的位置,然后在它旁边创建另一个并将其放入下一个索引位置的数组中,当一行完成时,我会再放另一个一个在起点之上并继续这样,直到所有图片框都被创建并在数组中。
我认为我需要数组,因为我需要比较游戏棋子上的位置和数组,我认为这是最好的方法。
有没有更好的方法来制作游戏的棋盘,或者如果这可行,有什么想法吗?
PS。我做的是VB
【问题讨论】:
-
似乎显而易见的选择是使用
TableLayoutPanel并在每个单元格中添加PictureBox。不确定是否会有性能问题,但这是我会尝试的第一件事。 -
PictureBox 的存在只是为了方便点击。但可以肯定的是,它使简单的 Graphics.DrawImage() 调用成本高出 3 个数量级。 Label 是另一种过度,调用 TextRenderer.DrawText() 的缓慢方式。所以不要使用它。
-
我的游戏将基于指向一个图片框的一个角色,然后将其移动到另一个只需指向并单击的角色
标签: arrays vb.net picturebox