1. 程式人生 > >cocos2dx 遊戲切到後臺再進入遊戲的處理

cocos2dx 遊戲切到後臺再進入遊戲的處理

由於cocos引擎中,遊戲切入後臺後定時器後停掉會讓某個Animation動作停止。
導致當重新進入遊戲時,看到的不是你想要的畫面。或者定時器倒計時的時間對不上等問題。
cc.game.EVENT_HIDE 和 cc.game.EVENT_SHOW可以解決這個問題,前者是進入後臺的監聽,後者是
返回遊戲的監聽。回撥的事件可以自定義,這裡只做簡單的舉例:

var pauseTime = 0;
cc.eventManager.addCustomListener(cc.game.EVENT_HIDE, function(){
    cc.log("遊戲進入後臺");
    pauseTime = ServerTimeUtils.getServerTime
(); }); cc.eventManager.addCustomListener(cc.game.EVENT_SHOW, function(){ cc.log("重新回到遊戲!"); if(ServerTimeUtils.getServerTime() - pauseTime > 60*1000){ if(!cc.sys.isNative){ location.reload(); //相當於重新整理操作 }else{ ReLogin(); //重新登入的處理 } } });

ServerTimeUtils.getServerTime()是自定義的本地同步伺服器時間的一個方法。如果只需記錄時差,則可換成 new Date().getTime.
上述程式碼功能:
1.no native: 若離開頁面(最小化視窗或切換了選項卡)超過60S,則重新整理遊戲,即重新載入

2.native:若遊戲切換到後臺超過60S,則重新登入載入遊戲