讓變化成為計(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)電問(wèn)題,唯一需要做的就是重載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
              }

            }

          }

          不過(guò),正像下面的帖子中談到的,Nokia 7650機(jī)型的問(wèn)題是無(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)電問(wèn)題(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í)沒(méi)有立刻暫停,游戲者可能會(huì)輸?shù)粲螒颉?
          可以用類Displayable 的方法isShown()或者類Canvas 或CustomItem 的方法 hideNotify() 來(lái)暫停MIDlet。
          在Canvas 對(duì)象離開(kāi)顯示屏后,方法hideNotify()將被立刻調(diào)用。在方法hideNotify()中創(chuàng)建
          一個(gè)自動(dòng)暫停機(jī)制,用來(lái)暫停線程、關(guān)閉計(jì)時(shí)器、保存重要數(shù)值等。參見(jiàn)下面的代碼范例:
          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)顯示給用戶。
          主站蜘蛛池模板: 信宜市| 鹤壁市| 商洛市| 炎陵县| 监利县| 四平市| 长治县| 福鼎市| 登封市| 南乐县| 武宣县| 泸溪县| 红安县| 从化市| 壤塘县| 西充县| 百色市| 揭阳市| 万载县| 河间市| 荔波县| 日照市| 秦皇岛市| 屏东市| 遵化市| 炉霍县| 海林市| 松潘县| 山西省| 通许县| 娱乐| 长岛县| 英吉沙县| 十堰市| 昭平县| 尉犁县| 天镇县| 大庆市| 巴彦县| 扎鲁特旗| 南靖县|