国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

基于Nokia S60的游戲開發(fā)

2019-11-18 12:45:51
字體:
供稿:網(wǎng)友

本文是基于Nokia Series 60和Symbian OS技術(shù),指導開發(fā)者在現(xiàn)在的Series 60移動電話終端上開發(fā)高級的移動游戲
操作系統(tǒng)。這適用于Series 6.1作為Series   注重:本文檔中討論的技術(shù)路線都是以Symbian>
  Symbian操作系統(tǒng)簡介

  Symbian操作系統(tǒng)是所有Symbian OS電話共享的應(yīng)用編程接口( API)技術(shù)的公共核心。 這個核心被命名為"通用技術(shù)"(generic technology,簡稱為GT),它被分成不同的版本。 GT包括一個多任務(wù)核心、通訊、數(shù)據(jù)治理和圖表中間件,低級圖形用戶界面框架和應(yīng)用程序引擎。

  象智能電話這樣的小型手持設(shè)備,通常是資源非常緊張的設(shè)備。 這種設(shè)備的尺寸和制造費用限制了可用的存儲器,處理速度和電池壽命。 盡管以上這些資源缺乏,但是這些設(shè)備還是需要能夠穩(wěn)定運行相當長的一段時間,甚至數(shù)個月。 一旦出現(xiàn)資源溢出的錯誤,對于系統(tǒng)來說重要的事情就是返回到前一個穩(wěn)定的狀態(tài),而不失去任何重要的數(shù)據(jù)。 這使得完全地捕捉和處理每個運行錯誤對于系統(tǒng)和應(yīng)用程序來說是非常重要的。

  由于資源溢出而出現(xiàn)的錯誤,和所有的運行期錯誤一樣被稱為異常。 在標準的C++中,這些異常是使用try-catch-throw機制處理的,但是因為它造成了代碼長度的負面影響,所以Symbian OS提供了它自己的稱為trap harness的機制。

  Symbian開發(fā)他們自己的異常處理程序的另一個原因是開發(fā)Symbian OS的時候,try - catch - throw機制還不是C++標準的一部分。trap- harness的概念是使用一個TRAP宏把可能引發(fā)異常的函數(shù)封裝起來。這個宏可用于捕捉多個函數(shù),并且這些函數(shù)可以嵌套。萬一出現(xiàn)一個異常,導致異常的函數(shù)的執(zhí)行就會通過User::Leave函數(shù)終止,相當于標準的C++異常處理中的throw。這被稱為一個leave(離開),它將返回程序執(zhí)行到結(jié)束的TRAP宏,在那里相應(yīng)的恢復動作可以被執(zhí)行。

  Symbian OS還提供一個工具,以便清除異常。一個cleanupstack被用于引用只被一個自動變量引用,并且假如出現(xiàn)一個leave的時候需要被釋放的對象。TRAP宏將銷毀cleanupstack中自動變量分配的內(nèi)存。

  Symbian OS提供一個用于在單一線程之內(nèi)非搶先式多任務(wù)處理技術(shù)的系統(tǒng)。這個包括活動對象和活動調(diào)度程序的系統(tǒng)的設(shè)計目標是降低運行時間成本和解決與優(yōu)先計劃線程沖突的同步問題。Symbian OS中的每個應(yīng)用程序由一個活動調(diào)度程序和一個或多個活動對象組成。這個調(diào)度程序封裝一個需要異步的服務(wù)和依照它們的優(yōu)先權(quán)安排活動對象的等待循環(huán)。活動對象封裝實際的異步服務(wù)。

photoshop教程 數(shù)據(jù)結(jié)構(gòu) 五筆輸入法專題 QQ病毒專題 共享上網(wǎng)專題 Google工具和服務(wù)專題

需求

  與許多其它用于游戲的設(shè)備不同,智能電話需要在游戲中或者任何其他的應(yīng)用程序運行的時候能夠通知用戶各種系統(tǒng)事件。 應(yīng)用程序需要考慮到可能的中斷,例如因為打進來的電話或者消息,并且它們需要根據(jù)情況進行處理。 應(yīng)用程序還應(yīng)該不消耗設(shè)備資源,例如過度的使用內(nèi)存或者電量。

  通知用戶的大多數(shù)系統(tǒng)消息使用系統(tǒng)自己的對話框,稱為全局通知。 這個對話框具有比任何應(yīng)用程序都要高的窗口優(yōu)先權(quán),因此它們出現(xiàn)在應(yīng)用程序的前端。 在系統(tǒng)事件中,一個異常是打進來的電話造成電話通信應(yīng)用程序變成最前端的應(yīng)用程序而把被中斷的應(yīng)用程序留作背景。 然而,所有的系統(tǒng)端事件具有一個公共特征,可以被一個應(yīng)用程序捕捉。 當一個系統(tǒng)事件發(fā)生時,最前端的應(yīng)用程序失去焦點。 這造成應(yīng)用程序用戶接口類(CAknAppUI)的HandleForegroundEventL方法被調(diào)用。 通過覆蓋這個方法,應(yīng)用程序可以執(zhí)行需要的動作,例如暫停正在進行的游戲。

  應(yīng)用程序需要注重電池使用量。 當一個電話在預定的時間內(nèi)沒有使用的情況下,它會進入睡眠方式以便消耗最少的電量。 假如一個應(yīng)用程序持續(xù)做后臺處理,例如在一個循環(huán)中查詢一個變量,電話可能不會進入休眠狀態(tài)。 所有的查詢應(yīng)該在程序塊循環(huán)中執(zhí)行,并且所有的計時器應(yīng)該在游戲暫停的時候停止。 一旦一個計時器需要來維護和另一個終端的連接,這個計時器的頻率應(yīng)該降到最小水平。 當在預先設(shè)定的時間間隔里一直沒有用戶活動的時候,應(yīng)用程序還可以從一個系統(tǒng)端計時器中取得事件。 要做到這些可以使用e32std.h頭文件中可以找到的RTimer::Inactivity方法。 在電池供電的設(shè)備中,軟件需要對忽然斷電有所預備。 電池可能會沒電,或者用戶可能把它從設(shè)備中拿出來。 假如重要的用戶數(shù)據(jù)被編輯的時候,就更應(yīng)該注重這些情況了。 每隔一段時間這些數(shù)據(jù)就應(yīng)該被保存,并且能夠在重新啟動之后恢復。 此外,應(yīng)用程序應(yīng)該對被損壞的數(shù)據(jù)有所預備,并且能夠安全地從這種情況下恢復。

  限制

  除了有限的存儲量之外,智能電話和PC相比有其他幾個限制。 首先,智能電話沒有像PC一樣高效的處理器。 智能電話基本都沒有數(shù)學處理器,因此時間單位計算應(yīng)該使用整數(shù)實現(xiàn)。 Symbian OS作為一種游戲平臺還有一些約束。 例如,這個平臺不支持可寫的靜態(tài)數(shù)據(jù),而靜態(tài)數(shù)據(jù)經(jīng)常被用于在游戲中來最優(yōu)化訪問廣泛使用的數(shù)據(jù)。

  智能電話還有相對限制的硬件。 顯示屏幕有有限的分辨度、尺寸和彩色深度。 小鍵盤只有有限數(shù)目的按鍵,并且按鍵的布局可能不便于玩游戲。 在不同硬件解決方案之間,鍵盤的布局可能會有很大的不同,因此游戲應(yīng)該提供用戶重新定義按鍵的功能。 智能電話還沒有足夠的端口來支持各種游戲控制器,像方向盤和游戲桿,這些都是在PC環(huán)境中很常見的。 所有這些限制決定了哪些游戲可以被實現(xiàn)并且安裝到一部智能電話上,而不會降低它們的可玩性。 然而從長遠的觀點來看,智能電話中使用的技術(shù)將越來越精巧,新的特性和解決方案將被引入。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永寿县| 葫芦岛市| 肥东县| 吴旗县| 星座| 肇庆市| 军事| 遂宁市| 平南县| 文安县| 万载县| 翼城县| 柳江县| 雅江县| 江达县| 台北市| 五台县| 射阳县| 张家川| 家居| 广南县| 奉新县| 雷州市| 山西省| 绥化市| 革吉县| 彰化市| 固镇县| 河津市| 泉州市| 依安县| 襄垣县| 中宁县| 宕昌县| 马关县| 无锡市| 广州市| 泸州市| 读书| 盘山县| 墨脱县|