讓變化成為計(jì)劃的一部分

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

          我最希望軟件帶給用戶的感受是:美好的體驗(yàn)、舒適感、簡(jiǎn)約、干凈...

          posts - 32, comments - 8, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          比如你的游戲正在進(jìn)行中,卻突然一個(gè)電話,那么你能保證你的游戲不死機(jī)嗎?
          解決來(lái)電問題,唯一需要做的就是重載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機(jī)型的問題是無(wú)法克服的,當(dāng)你接電話時(shí)關(guān)閉了游戲,那么電話打完后你也無(wú)法啟動(dòng)游戲了,除非重啟手機(jī)。


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


          評(píng)論

          # re: [JavaME]解決來(lái)電問題(Incoming Call)  回復(fù)  更多評(píng)論   

          2005-11-16 23:17 by 讓變化成為計(jì)劃的一部分
          參考的資料《Nokia 中的暫停功能》:
          實(shí)際上,當(dāng)MIDlet 隱藏時(shí),它總是處于暫停狀態(tài)。這在游戲應(yīng)用軟件中尤其重要,因?yàn)椋绻谟?
          戲被隱藏時(shí)沒有立刻暫停,游戲者可能會(huì)輸?shù)粲螒颉?
          可以用類Displayable 的方法isShown()或者類Canvas 或CustomItem 的方法 hideNotify() 來(lái)暫停MIDlet。
          在Canvas 對(duì)象離開顯示屏后,方法hideNotify()將被立刻調(diào)用。在方法hideNotify()中創(chuàng)建
          一個(gè)自動(dòng)暫停機(jī)制,用來(lái)暫停線程、關(guān)閉計(jì)時(shí)器、保存重要數(shù)值等。參見下面的代碼范例:
          protected void hideNotify()
          {
          //執(zhí)行暫停時(shí)的操作
          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
          }
          }
          暫停之后的操作是繼續(xù),故需要把Continue 選項(xiàng)顯示給用戶。
          主站蜘蛛池模板: 许昌市| 嘉祥县| 富锦市| 英超| 墨脱县| 乐业县| 金溪县| 贵定县| 临高县| 射洪县| 武邑县| 安宁市| 合肥市| 莲花县| 同江市| 磐石市| 印江| 白水县| 托里县| 杂多县| 博白县| 东阳市| 进贤县| 侯马市| 大名县| 电白县| 连南| 天全县| 新泰市| 丁青县| 中宁县| 灌南县| 佛教| 永泰县| 天津市| 南京市| 南木林县| 寻乌县| 宝丰县| 海丰县| 永城市|