s60平臺下編寫程序===手把手教你寫遊戲(一)

s60平臺下的一個程序===手把手教你
這份手冊通過詳細的展示給你怎麼來寫一個s60下的tetris來說明S60 SDK下的一些基本概念
 
STEP1  hello world
這個程序在SDK裏有,
在group\目錄下是一些工程文件:
  bld.inf
  s60text.mmp
  step1.rss是資源文件。在這個事例中它包含有R_AVKON_SOFTKEYS_OPTIONS_EXIT這個軟鍵
盤配置,效果就是手機的左邊鍵是option,右邊是exit。此外還有其他一些資源
  step1.pkg 這個文件包含一些關於怎樣創建*.sis文件的描述,*.sis是可以直接在手機上
運行的程序
inc\ 和src\目錄下呢就是這個程序的源代碼了,下面我簡單的分析一下:
symbian平臺下的程序和windows及unix下的程序有很大區別,windows及unix下的都從一個
main()開始,但是symbian下的卻是被框架以一個dll的方式加載。當然啦,就象每個dll文
件一樣,它是從E32DLL函數開始的,不過會返回的更快一些。

主框架先調用NewApplication()函數來得到一個CApplication對象,然後運用Avkon會返回
CApplication子類的一個對象。在我們的程序中那就是在s60testapplication.cpp中的
CS60TestApplication。在這裏重寫了兩個函數:
第一個是AppDllUID,這個函數返回程序的UID。(每個程序都有一個唯一的UID,注意我們這
裏的程序使用的是開發UIDs,是不能在發佈版本里出現的)。
第二個函數是CreateDocumentL,這個函數創建一個CApaDocument對象。在我們的例子中就是
CS60TestDocument,一個CAknDocument的子類。
調用CreateAppUiL ,它創建了一個維護程序用戶界面的對象,iAppUi=new(ELeave) CS60TestAppUi(this),就是
CS60TAppUi,在ConstructL函數中我們首先調用BaseConstructL函數,這個函數能夠做一些
初始化對象的工作,象是從資源文件中加載軟鍵/菜單配置等;然後我們創建
CS60TestAppView類的一個對象,CS60TestAppView是CCoeControl的一個子類。CCoeControl
對象是被畫到屏幕上的一些控件,我們的控件會添滿ClientRect(),比如在狀態面
板和sotfkeys描述之間的空白。要是把ClientRect改成ApplicationRect()那程序就會覆蓋
整個屏幕。調用AddToStackL()接收鍵盤事件。

AppUi同樣還可以接收菜單的事件,當用戶選擇一個菜單命令時,HandleCommandL被調用來處
理傳來的命令代碼,這些代碼都是在菜單的資源文件中已經定義了的。我們運行Exit和Hello
命令,會出現一個note。

在CS60TestAppView類中我們只是重寫了一個函數:Draw方法,當視圖需要重畫的時候它會被
調用,在這裏我們在屏幕上寫出ClientRect(176*144)的大小,我們用TBuf來表示這個描述符。
 
第一次翻譯文檔,因爲跟我一起學習的幾位同學不習慣看英語資料所以我挑選出一些來翻譯出來,貼來大家分享,同時我知道自己的英語也是菜的沒的說,歡迎大家踊躍拍磚.裏面肯定有好多的詞語術語錯誤,歡迎大家指出來,希望和大家一起交流進步
原始地址[url]http://www.newlc.com/article.php3?id_article=402[/url]
 
附帶程序源碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章