讓變化成為計劃的一部分

          歡迎大家探討本Blog涉及的所有軟件課題。我的Google Talk ID:zhengyun(at)gmail.com。

          我最希望軟件帶給用戶的感受是:美好的體驗、舒適感、簡約、干凈...

          posts - 32, comments - 8, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          比如你的游戲正在進行中,卻突然一個電話,那么你能保證你的游戲不死機嗎?
          解決來電問題,唯一需要做的就是重載Canvas的hideNotify()方法。

          just like this:

          boolean gameIsPaused;
           
          protected void showNotify() {  gameIsPaused = false;
          }

           
          protected void hideNotify() {
            gameIsPaused 
          = true;
          }

           
          private void theMainGameLoop() {
            
          while (gameIsRunning) {
              
          if (!gameIsPaused) {
                
          // process events and update the screen
              }

            }

          }

          不過,正像下面的帖子中談到的,Nokia 7650機型的問題是無法克服的,當你接電話時關閉了游戲,那么電話打完后你也無法啟動游戲了,除非重啟手機。


          可供參考的帖子:
          http://forum.java.sun.com/thread.jspa?forumID=76&threadID=581789
          http://forum.java.sun.com/thread.jspa?forumID=76&threadID=376907


          評論

          # re: [JavaME]解決來電問題(Incoming Call)  回復  更多評論   

          2005-11-16 23:17 by 讓變化成為計劃的一部分
          參考的資料《Nokia 中的暫停功能》:
          實際上,當MIDlet 隱藏時,它總是處于暫停狀態。這在游戲應用軟件中尤其重要,因為,如果在游
          戲被隱藏時沒有立刻暫停,游戲者可能會輸掉游戲。
          可以用類Displayable 的方法isShown()或者類Canvas 或CustomItem 的方法 hideNotify() 來暫停MIDlet。
          在Canvas 對象離開顯示屏后,方法hideNotify()將被立刻調用。在方法hideNotify()中創建
          一個自動暫停機制,用來暫停線程、關閉計時器、保存重要數值等。參見下面的代碼范例:
          protected void hideNotify()
          {
          //執行暫停時的操作
          remainingTime = endTime – System.currentTimeMillis();
          myThread.stop();
          autoPaused = true;
          repaint();
          // Include a pause test in paint() method to check if paused
          // paint a pause message on screen if autoPaused true
          }
          protected void paint(Graphics g)
          {
          // paint game screen here
          if (autoPaused == true) {
          // paint pause message
          }
          }
          暫停之后的操作是繼續,故需要把Continue 選項顯示給用戶。
          主站蜘蛛池模板: 银川市| 田阳县| 南木林县| 龙川县| 宣汉县| 大余县| 喀喇| 宜丰县| 武威市| 海城市| 景宁| 连江县| 靖西县| 高平市| 鄂州市| 蒲江县| 梨树县| 辉县市| 宁城县| 根河市| 如皋市| 荣成市| 绩溪县| 太谷县| 盐亭县| 政和县| 阿鲁科尔沁旗| 舟曲县| 电白县| 明光市| 堆龙德庆县| 布尔津县| 昭苏县| 分宜县| 沿河| 德兴市| 勐海县| 麻阳| 兴化市| 湘潭市| 亚东县|