亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

最后isGameOver()方法判斷是否結束的時候是有問題的,調用那些移動的方法返回值的true or false的時候,它們會自動移動,這樣就是一個BUG!

正在回答

6 回答

我確實還是沒有懂。isgameover就是在做判斷,沒有具體的移動啊。 isgameover中調用nospace( board ) 和 nomove( board ) )做判斷。 nomove()調用canMoveLeft( board );canMoveRight( board );canMoveUp( board );canMoveDown( board )四個函數做判斷。注意,這里調用的四個函數都是判斷,不是移動!和moveLeft,moveRight,moveUp,moveDown不同。 isgameover在每個回合都會執行,如果有bug,在第一回合游戲的時候就能體現出來了。 你可以在研究一下我的源代碼:http://www.liuyubobobo.com/sub-html5/code/game/2048/course/index.php 如果有問題,隨時交流。如果是我的錯誤,我一定更正。 P.S.1 我想粘貼源代碼失敗了;請慕課網解決這個問題; P.S.2 用戶無法在慕課網上下載源碼,給用戶帶來很大的障礙!請慕課網盡早解決!

1 回復 有任何疑惑可以回復我~
#1

sallon 提問者

非常感謝!
2015-06-18 回復 有任何疑惑可以回復我~

謝謝你的回復,我參照你的教程自己編寫了一個拼圖游戲!受益匪淺!

0 回復 有任何疑惑可以回復我~

另外,以上文字我本來分段了,為什么貼上去段落也沒有了。。。。請慕課網解決。

0 回復 有任何疑惑可以回復我~

我想我的問題版主還是沒有明白,我的意思是最后的一個方法就是isGameOver這個方法的實現是有問題的,理論上來講我們在判斷游戲結束沒有的情況是所有的位置都不能移動,但是我們使用的方法并不能挨個移動每一個元素,如果這樣的話呢,會使得相鄰的可以合并的元素自動合并,主觀上來講最為游戲,我們只告訴玩家能不能做,但是不能替玩家做。我的改進方法是加入參數去判斷是否合并。

0 回復 有任何疑惑可以回復我~

頂了

0 回復 有任何疑惑可以回復我~

游戲的邏輯應該是沒有問題的。但是setTimeOut如果時間設置的不合適,確實會發生最后一步還沒有移動完就gameover的情況。不知道你遇到的是不是這種情況。事實上,這種處理方法確實比較初級。但是鑒于這個課程的重點放在游戲框架和游戲邏輯上,很多細節處理使用的是比較初級的技術,有興趣的話可以查閱更多資料,完善游戲:)

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號