2008-11-28 66 views
6

在C#中显示&程序简单游戏板(如国际象棋,跳棋等)的最佳方式是什么?在控制和底层游戏逻辑方面。显示和编程游戏板的最佳方式?

我想到的一个想法是使用图片框(或从它继承的类)与董事会&字段类。

  • 毕竟这是一个体面的解决方案吗?
  • 如何使用此解决方案将图形与游戏逻辑分开(我相信Board &字段类可能不够)?
  • 对于这样的目的,PictureBox是否足够高效?

谷歌搜索一些也带来了我使用按钮/标签为每个游戏领域的解决方案。但是回到Board,Field和PictureBox。

可扩展性 - 正确设计它可以轻松实现任何其他的棋盘游戏(甚至是纸牌游戏),因为它毕竟是可修改的字段。

回答

4

在面向对象的方法中,考虑游戏中涉及的对象(例如棋盘,棋子)......让他们提供一种绘制方法,该方法需要一个对象并在其上绘制自己。

绘图本身可以在PictureBox上完成 - 这是用于这种目的的理想控制 - 但这并不是那么重要,因为一旦您的绘图逻辑就位,它将不依赖于控制。

一般而言,不需要使用具有不同控件的解决方法。这些对于传统的GUI来说可能很好。不是那么多的游戏(或任何类型的图形重量级应用程序)。

1

如果你想闪亮,你可以试试WPF,perf。现在还不算太坏,而且很容易获得非常容易定制的图形,从外部文件加载等等。

在概括行为方面,您可能想要分离场景图代码(布局,绘图对象和所有无聊的低级别东西),然后为普通棋盘游戏交互添加一层:选择源和目标进行移动,旋转等,然后将游戏逻辑分层。

我可能会先将Tic-Tac-Toe放在第一位,看看是否有任何需要打破层分离的位置,并在游戏逻辑陷入困境之前尽早修复。

4

从数据结构的角度来看看位图数据结构。 http://en.wikipedia.org/wiki/Bitboard

+0

良好的建议,但很低层次,并在思考游戏的前端方面时最终无关紧要。 – 2008-11-28 18:07:03

1

如果你感到很冒险,您可以尝试XNA)

是的,它比其他解决方案更复杂,可能是矫枉过正的棋盘游戏,但一旦你得到它的窍门,你可以自由做一些很棒的游戏。

0

一般来说,首先要为电路板,零件等设计逻辑结构,然后对这些操作进行设计,并最终设计一个图形界面,或多或少地作为前端。

相关问题