課程
/前端開發
/WebApp
/慕課網2048私人訂制
最后isGameOver()方法判斷是否結束的時候是有問題的,調用那些移動的方法返回值的true or false的時候,它們會自動移動,這樣就是一個BUG!
2014-05-15
源自:慕課網2048私人訂制
正在回答
我確實還是沒有懂。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 用戶無法在慕課網上下載源碼,給用戶帶來很大的障礙!請慕課網盡早解決!
sallon 提問者
謝謝你的回復,我參照你的教程自己編寫了一個拼圖游戲!受益匪淺!
另外,以上文字我本來分段了,為什么貼上去段落也沒有了。。。。請慕課網解決。
我想我的問題版主還是沒有明白,我的意思是最后的一個方法就是isGameOver這個方法的實現是有問題的,理論上來講我們在判斷游戲結束沒有的情況是所有的位置都不能移動,但是我們使用的方法并不能挨個移動每一個元素,如果這樣的話呢,會使得相鄰的可以合并的元素自動合并,主觀上來講最為游戲,我們只告訴玩家能不能做,但是不能替玩家做。我的改進方法是加入參數去判斷是否合并。
頂了
游戲的邏輯應該是沒有問題的。但是setTimeOut如果時間設置的不合適,確實會發生最后一步還沒有移動完就gameover的情況。不知道你遇到的是不是這種情況。事實上,這種處理方法確實比較初級。但是鑒于這個課程的重點放在游戲框架和游戲邏輯上,很多細節處理使用的是比較初級的技術,有興趣的話可以查閱更多資料,完善游戲:)
舉報
慕課網這款“2048私人訂制”通過大神老的講解學習到游戲結構的開發
1 回答16個小格子刷新一下就出來了。。。
2 回答好像只要判斷nospace就可以了吧?
2 回答在touchmove里添加event.preventDefault()后導致頁面失去上下滑動的作用
3 回答我一按左鍵網頁就卡住了 為什么?
2 回答老師 您好 親問一下這句代碼var theNumberCell = $('#number-cell-'+i+'-'+j); 為什么會報錯呢
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2014-05-17
我確實還是沒有懂。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 用戶無法在慕課網上下載源碼,給用戶帶來很大的障礙!請慕課網盡早解決!
2014-05-24
謝謝你的回復,我參照你的教程自己編寫了一個拼圖游戲!受益匪淺!
2014-05-17
另外,以上文字我本來分段了,為什么貼上去段落也沒有了。。。。請慕課網解決。
2014-05-16
我想我的問題版主還是沒有明白,我的意思是最后的一個方法就是isGameOver這個方法的實現是有問題的,理論上來講我們在判斷游戲結束沒有的情況是所有的位置都不能移動,但是我們使用的方法并不能挨個移動每一個元素,如果這樣的話呢,會使得相鄰的可以合并的元素自動合并,主觀上來講最為游戲,我們只告訴玩家能不能做,但是不能替玩家做。我的改進方法是加入參數去判斷是否合并。
2014-05-16
頂了
2014-05-16
游戲的邏輯應該是沒有問題的。但是setTimeOut如果時間設置的不合適,確實會發生最后一步還沒有移動完就gameover的情況。不知道你遇到的是不是這種情況。事實上,這種處理方法確實比較初級。但是鑒于這個課程的重點放在游戲框架和游戲邏輯上,很多細節處理使用的是比較初級的技術,有興趣的話可以查閱更多資料,完善游戲:)