2013-07-04 60 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