2013-07-04 59 views
1

我是编程游戏的新手。我只是想知道,所以对于一个简单的棋盘游戏(比如说Tic Tac Toe或Checkers),使用多个画布作为棋盘会是一个好主意吗?我的意思是,每个画布都可以代表棋盘上的每个方块。多帆布棋盘游戏vs.单帆布

我觉得很多人都喜欢这样做,因为它保持简单的逻辑。你让CSS做所有的间距和恼人的方形分离。但我不知道这样做是否好做法。

由于我是新手,我觉得现在避免使用快捷键会对创建复杂事物有好处。那么,你对每个棋盘广场的独立画布有什么看法?

+3

就我个人而言,当我想要有图层时,我只使用了多个画布。我不会为这样的游戏的每个方块使用单个画布。特别是一个棋盘棋子会从正方形移动到正方形的游戏会使它更加困难 –

+3

不,使用一个'canvas'元素。如果你使用多个,事情会非常*非常*杂乱*非常*快。以下是一些教程:http://www.gameplaypassion.com/blog/how-to-draw-a-checker-board-using-html5-canvas/&https://github.com/zubairv85/HTML5-Checkers。 – Dom

+1

+1与John Carter和Dom同意......不要为电路板使用多个画布。一个建议:您可以将棋盘格img元素直接放在您的画布下 - 节省大量重绘。 – markE

回答

3

最重要的是找到一个平衡和理解为什么你会使用一个画布与分层帆布。

对于一个井字游戏,只需要一个游戏,因为没有任何东西需要不断更新。如果更容易维护。 事件驱动(即没有任何事情发生,直到你点击/做某事)像这样的游戏/应用程序通常不会受益于几个层次。

当您使用多个画布时,通常是因为您有一个静态或复杂的背景(或前景),以及一些需要平滑移动的对象。这将成为分层画布的好选择,因为这样可以清除并重绘仅移动对象的区域,而不是渲染背景(特别是在背景为复合材料的情况下)。

处理分层画布并不比一个更复杂,但您需要跟踪绘制操作的位置。您可以使用嵌入信息的对象来执行此操作,或者为了额外的性能使用数组/变量。

+1

+1与许多事情一样,当你知道“为什么”时,你更接近真正的理解和掌握。 – markE