首 页技术文章资源下载WAP论坛用户中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:中国WAP技术门户网站 -> 技术文章 -> 手机编程 -> Symbian -> 程序开发 -> 文章内容 退出登录 用户管理
热门文章
· [转载] wap2.0技巧篇
· [转载] WAP 2.0简介
· WML语言基础(WAP建站...
· [转载] WAP/WEB网站建设
· JSP技术在WAP开发中...
· [图文] WML语言基础(WAP建站...
· WML语言基础(WAP建站...
· [转载] 《女性安全期测算》...
· [转载] 跟你详说WAP
· asp.net开发wap程序...
相关文章
 
游戏移植建议(Brew -> Symbian)
文章作者:七心骰子 [ 收藏此页到365Fav ]
文章来源:转载 [ 收藏此页到365Key ]
发布时间:2005-12-19 2:12:48 减小字体
文章编辑:atck 增大字体
都是我在以前工作中总结的一些经验,可能对刚刚从事类似工作的朋友会有点儿用处,内容不多,绝对原创,呵呵…

游戏移植建议(Symbian)

      希望提供需求及设计文档
希望原始游戏可以提供需求及设计文档。虽然大部分游戏功能可以在运行时看到,但通过需求文档的话可以更全面的了解游戏的功能(尤其是在某些特定条件下被触发的事件)。通过比较详细的设计文档,结合代码中的注释在阅读程序时可以更快速的掌握游戏逻辑的结构。这里主要需要类之间的关系(继承,聚合,依赖等)图和一些关键部分的顺序图或状态图,而且同类游戏只需一个就可以。

      希望注意数组及结构的赋值方式
如果在Symbian程序中出现类似这样的代码:
MGS_POINT pos[3]=
     {
           {0,(shell->GetScreenHeight()-selH)/2},
           {shell->GetScreenWidth()-selW,pos[0].y},
           {(shell->GetScreenWidth()-selW)/2,MENU_TOP_SELECT_Y},
     }
即数组中的某一元素与其它元素存在依赖关系,那么Symbian程序在编译的时候会出现问题(可能Symbian程序编译时对数组的赋值顺序比较特别)。因此希望其他系统的程序员最好能写成:
MGS_POINT pos[3]
     pos[0].x=0
     pos[0].y=(shell->GetScreenHeight()-selH)/2
     pos[1].x=shell->GetScreenWidth()-selW
     pos[1].y=pos[0].y
     pos[2].x=(shell->GetScreenWidth()-selW)/2
     pos[2].y=MENU_TOP_SELECT_Y
的方式。同样,对结构的赋值也与此类似。

      建议统一Shell类中的接口名称。
在不同系统的CSystemShell中,有一些功能类似的接口在名称上不同。如PlaySound()和PlayMidea()等。如果所有平台能统一起来,在项目互相移植时可以省却许多不必要的麻烦。


      游戏消息处理方式的差异。
在游戏开发里,一般当游戏(逻辑)要执行一些系统功能时,需要调用SystemShell类来和操作系统打交道。同样,当操作系统有一些消息(如按键,来电)要告诉游戏时,也需要调用SystemShell类来通知游戏。在具体实现时,不同的操作系统可能有一些差异,如:

     消息处理函数      调用位置

Symbian      Shell->OnKeyDown( )      CxxxxAppUi::HandleKeyEventL( )
     Shell->OnBreak( )      CxxxxAppUi::HandleForegroundEventL()
     Shell->Init( )      CxxxxAppUi::ConstructL()

Brew      Shell->OnKeyDown( )      xxxx_HandleEvent(…AEEEvent eCode,…)
switch (eCode) EVT_KEY
     Shell->OnBreak( )      xxxx_HandleEvent(…AEEEvent eCode,…)
switch (eCode) EVT_APP_SUSPEND
     Game-〉OnGameStart()      xxxx_HandleEvent(…AEEEvent eCode,…)
switch (eCode) EVT_APP_START

注:在Symbian中,Game-〉OnGameStart()可以在Shell->Init( )中调用。
在Brew里,xxxx_HandleEvent()函数在xxxx.cpp(xxxx为项目名)文件里。

      Symbian中RGB颜色的存储方式
在Symbain中,RGB颜色的实际存储方式实际上是BRG顺序。如红色实际上保存为0x0000FF而非0x00FF0000。所以如果有其他平台用到Symbian中的颜色的话,请注意转换。

      在保存UTF8文档时,注意把“Add a Unicode Signature(BOM)”选项去掉,否则在文档开始的地方会有乱码(JAVA程序可能不需要)。

      Symbian程序退出时习惯使用右软键,其它系统可能不一样(如使用”C”键)。所以当在不同平台上有些功能键的使用习惯不一致时,请注意调整相应的键位。

<---->
 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]

关于我们  |   版权声明  |   广告服务  |   帮助中心  |   联系我们  |   网站地图  |   友情链接 
Copyright © 2004-2005 Wapzj.Com. All Rights Reserved .
粤ICP备05000730号 在线人数: