2012-06-27 28 views
0

我想在Visual Basic.NET 2010中创建垄断板和ludo游戏。
我该如何表示董事会?我正在考虑图片盒,但后来他们变得笨拙,无法单独处理。你可以创建图片框的数组?在Visual Basic中创建垄断和Ludo

此外,由于我只是一个新手程序员,你能说出Visual Basic的哪些功能对这个游戏有用么?

+0

实际上,我非常想要一种用于董事会代表性的方法。最后一次,当我创建国际象棋时,我使用了64个图片框并访问它们,并改变它们的属性,结果效率很低 –

回答

2

您可以随时在VB(和C#)中以编程方式添加它们,而不是在Forms设计器中添加控件。这使您可以随意将它们存储在任何地方,如二维数组中。一定要将它们添加到Form.Controls属性中。

Dim board as New PictureBox(M-1, N-1) {} 

myform.SuspendLayout() ' Diminishes flicker. 
For i As Integer = 0 To M - 1 
    For k As Integer = 0 To N - 1 
     Dim pic = New PictureBox() 
     'TODO: set the properties of the PictureBox here 
     board(i, k) = pic 
     myForm.Controls.Add(pic) 
    Next k 
Next i 
myForm.ResumeLayout() 

也可以考虑加入PictureBoxesTableLayoutPanel,而不是直接将它们添加到窗体。

而且,最好创建一个Board类,并处理该类中的所有板逻辑,而不是执行表单事件处理程序中的逻辑。其他类如PlayerGameScore也会有所帮助。

最好不要创建一个PictureBox的2-D数组,而是一些可以存储附加信息的类的数组,这些数据可以存储附加信息,例如正方形的状态或留在正方形上的数字列表,或者对适用于正方形等的特殊规则的引用。你在游戏设计方面有很大的自由。智能设计将更容易处理和适应其他游戏,而不仅仅是在事件处理程序中使用PictureBoxes

+0

没关系,那是个好主意。 :) –

+0

非常感谢。我一定会实现这些想法 –

0

我不考虑使用PictureBox,而是考虑创建一个UserControl,它封装与板上正方形相关的所有UI相关逻辑。例如,您可能希望棋盘上的所有方块都具有特定的右键单击上下文菜单,或者双击时做特别的操作。在大富翁中,您可能希望每个广场都有一个物业名称,价格,颜色等。

+0

好吧。实际上我没有使用过用户控件。所以,我想我可能会这样做 –

相关问题