J2ME之家

匿名投稿 投稿指南 RSS订阅 J2ME通告:
搜索: 您的位置主页>Symbian>Symbian>

从J2ME学Symbian游戏开发(二)

2008-3-2 19:25:31 来源:IT168 责任编辑: 【 点击: 我要投稿 [进入论坛]

  【IT168 技术文档】

  上一节我们讲到了“按键事件”在J2me和Symbian中的类似处理过程,其实这些东西都是一个游戏里必须做的处理,无论是在任何平台。 那么在手机游戏里,菜单也是必不可少的。而在Symbian里是不分什么高级UI和低级UI的,只有系统控件和自定义控件之分。

  那么界面交互部分我们一样可以和J2ME做个对比:

  J2ME里的高级UI+CommandAction() Symbian里的系统控件+HandleCommandL()

  J2ME里的低级UI+KeyPressed() Symbian里的自定义控件+OfferKeyEventL()

  (三)系统菜单

  和J2ME里不一样的是,Symbian里的系统控件是通过在资源文件中编辑,在源代码之外独立地指定应用程序的可见控件。在资源中可以定义的系统控件包括菜单、对话框、列表等。

  应用程序框架在应用程序启动时会打开资源文件,并根据在.rsg中创建的资源标识符,根据需要把各个资源加载到C++代码中。

  这样的架构有一定的好处就是:资源文件和C++源文件之间可以共享资源文件中定义的数据。

  通常在一个后缀名为.hrh的文件中定义命令菜单中使用的标识符。

  如下实例摘自SDK自带的Graphics实例:

  #ifndef __GRAPHICS_HRH__

  #define __GRAPHICS_HRH__

  // Graphics enumerate command codes

  enum TGraphicsIds

  {

  EGaphicsNoOffScreenDemo = 1,

  EGaphicsOffScreenDemo,

  EGaphicsStopDemo

  };

  #endif // __GRAPHICS_HRH__

  可见资源文件的处理使用的是C的预处理器,以避免多重包含。而.hrh文件也只能包含emnu和预处理语句,其它的C++语法都会导致资源编辑器编辑失败,这点需要特别注意。

  下面是和这个.hrh文件相对应的.rss文件的内容:

  NAME GRAP

  #include

  #include

  #include

  #include "Graphics.hrh"

  // ---------------------------------------------------------

  //

  // Define the resource file signature

  // This resource should be empty.

  //

  // ---------------------------------------------------------

  //

  RESOURCE RSS_SIGNATURE

  {

  }

  // ---------------------------------------------------------

  //

  // Default Document Name

  //

  // ---------------------------------------------------------

  //

  RESOURCE TBUF

  {

  buf="";

  }

  // ---------------------------------------------------------

  //

  // Define default menu and CBA key.

  //

  // ---------------------------------------------------------

  //

  RESOURCE EIK_APP_INFO

  {

  menubar = r_graphics_menubar;

  cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;

  }

  // ---------------------------------------------------------

  //

  // r_graphics_menubar

  // Menubar for Graphics example

  //

  // ---------------------------------------------------------

  //

  RESOURCE MENU_BAR r_graphics_menubar

  {

  titles =

  {

  MENU_TITLE

  {

  menu_pane = r_graphics_menu;

  }

  };

  }

  // ---------------------------------------------------------

  //

  // r_graphics_menu

用户名: (新注册)密码: 匿名:  请文明参与讨论,禁止漫骂攻击。
评论总数: [ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 法律声明 - RSS订阅 - 网站地图 - 返回顶部