`
isiqi
  • 浏览: 16484007 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

基于Nokia手机的移动游戏开发步步通(二)

阅读更多
3 游戏外壳和游戏动作

  Nokia新型号手机支持的游戏外壳可能会影响游戏动作。Nokia第一款可以使用游戏外壳的手机是Nokia 3510i。如果手机支持游戏外壳,设备的游戏菜单中会有一个设置对话框,允许用户设置游戏外壳上的按键对应的游戏动作。用户必须设置这个按键映射,否则设计使用普通键盘布局的游戏就不能运行。


 4 同时按键

  许多Nokia手机(例如,诺基亚6310i、3410、7210)不支持同时按下多键(也就是说,如果你按住Up键,那么MIDlet就不会知道你是否你按下Fire键)。虽然Nokia 7650支持同时按下多键(例如同时按住"1"和"3"键),但是操纵杆键物理上是无法同时又向左按又向上按的,所以在游戏中不可能有斜向的运动,并且在它被向上、向下、向左或者向右按下的时候是不能记录一个"点击"的。

  5 键名:避免硬编码你自己的文本字符串

  避免把硬编码文本和你的MIDlet中的键盘代码相关联。Canvas类提供了一个返回每个键盘代码关联的文本名称的方法:

public static String getKeyName(int keyCode);

  现在的Nokia设备的问题是这个方法始终返回一个英语字符串,而不是根据用户的语言选择。在未来的Nokia设备中,这个字符串可能会基于用户的语言选择。如果你的目的是开发可移植的游戏,那么必须记住getKeyName在不同的Nokia MIDP设备中返回不同的值。

  6 使用全屏画布(FullCanvas)功能键

  一个基于全屏画布(FullCanvas)游戏屏幕的功能键只能用于从游戏屏幕退出到不同的屏幕状态。带有FullCanvas类的Nokia用户界面应用编程接口明确地提供一个全屏图形区域用于绘图,可用于许多类型的游戏。

  继承于Nokia用户界面应用编程接口类FullCanvas的游戏屏幕将不会把功能键的键盘代码(即KEY_SOFTKEY1、KEY_SOFTKEY2,KEY_SOFTKEY3)用做游戏相关的动作,除非是用于从游戏屏幕返回到菜单中。

  如果一个MIDlet应用程序需要使用功能键命令,那么你必须使用默认的MIDP Canvas类,特别是如果你的MIDlet需要使用标签功能键的时候。当你使用FullCanvas的时候,你不应该提供你自己的功能键标签。

  7 MIDlet国际化

  你有可能需要把你的MIDlet国际化--例如,用于不同的地区和语言。MIDP的系统属性"microedition.locale"定义了设备的当前区域。它的值可以使用System.getProperty.方法取得。MIDP规范允许在这个系统属性中使用一个空值。然而,在Nokia的MIDP实现中是不允许空值的。CLDC的系统属性"microedition.encoding"定义了设备的默认字符编码。它的值可以使用System.getProperty方法取得。
想要了解更多MIDlet本地化问题,可以参阅《Writing World Aware J2ME Applications》http://wireless.java.sun.com/midp/ttips/worldaware/ 的资源包。目前在MIDP中还没有一个标准机制用来处理资源包。这个文档使用一种简单的途径把用户界面文本从主程序中分离出来。它在Resource 类(二、9节)中被处理。

  把国际化特色加入一个MIDlet非常重要,但是这可能会增加你的MIDlet的大小。如果MIDlet大小对于某种特定MIDP设备来说是一个问题,那么你可能希望产生好几个不同编译版本的MIDlet。每个版本可以为一个或多个区域、语言本地化。

  8 设备特性:声音、振动和灯光

  如果你使用Nokia用户界面应用编程接口类Sound或DeviceControl(振动、灯光),你应该提供一个Options或Settings菜单和一个设置编辑器,来允许最终用户启动或者取消这样的设置。

  然而,如果你使用Nokia用户界面应用编程接口类Sound或DeviceControl(振动、灯光)并且通过设置JAD参数<>来把你的游戏安装到Games菜单(见一、11节),Games菜单中已经提供的设置允许最终用户启动或者取消这些特性。因此应用程序没有必要自己创建这样一个特性。除Nokia UI API技术文档之外,你还可以参考《Nokia UI API Programmer ' s Guide》,它能提供很多有用的信息。

  9 设备无关性

  Nokia MIDP设备可能在屏幕尺寸、键盘布局和可用API等方面不同。为了创建可移植的游戏,在设计游戏时,这些差异应当被考虑在内。

  应用程序应该向系统询问屏幕的尺寸,并且避免绘制屏幕内容的时候硬编码坐标。可以使用Canvas类的getHeight和getWidth方法来达到这个目的。

  不同的Nokia MIDP设备中应用编程接口变化很大,开发者应该检查所要开发的设备平台上的应用编程接口。这是可以做到的,振动就是一个很好的例子。

try{
Class.forName("com.nokia.mid.ui.DeviceControl");
}
catch(ClassNotFoundException e){
//Can't use vibration because the API
//is not supported in the device
}

  使用继承于默认MIDP Canvas类的游戏屏幕代替厂商特定的FullCanvas类,这有助于提高你的MIDlet的可移植性;然而,那就不可能实现全屏幕了。

  10 最优化

  MIDP设备的内存非常有限,所以使用内存时应格外小心。对于游戏来说一个很重要的限制就是有限的堆内存(heap memory):为了节省堆内存,对象引用不再需要被设置为"null",以便这些对象可被垃圾-收集(garbage-collected)。彩屏手机需要更多的内存来处理应用程序中的位图,这与更大的屏幕位深度和相关的内部数据结构有关。因此,虽然一个应用程序可能编写来使用在一个黑白屏幕的手机上,但是在彩屏手机上使用时,它可能消耗更多动态内存:就Nokia 7210来说,它显示一幅图片时比Nokia 6310i多用16倍的内存。
开发者应该在设计应用程序时考虑到这个因素,应该把同时加载的图片数降到最少的程度。例如,闪动屏幕图像应该能够在游戏图形图象创建之前被垃圾收集(通过设置所有到图像对象的引用为"null")。

  11 安装

  默认情况下MIDlet被安装到Nokia设备的Applications菜单下。如果设备有Games菜单的话,MIDlet还可以通过设置MIDlet的.jad文件中的Nokia-MIDlet-Category:Game参数来安装到这个菜单下。
作者:wayne编译转贴自:yesky.com

分享到:
评论

相关推荐

    aspnetmvc步步通

    《ASP.NET MVC步步通》是一本专注于讲解ASP.NET MVC技术的详细教程,旨在帮助开发者逐步掌握这一强大的Web应用开发框架。ASP.NET MVC是Microsoft推出的一种模型-视图-控制器(Model-View-Controller)架构模式的实现...

    《Joomla!建站步步通》Joomla!组件模块安装配置视频培训教程

    【Joomla!建站步步通】是一套专为学习Joomla!内容管理系统(CMS)而设计的视频培训教程。...,还涉及了移动开发、数据库、Web开发、软件测试和金融等多个领域,为全面提高个人技术能力提供了多样化的学习资源。

    嵌入式Linux系统移植步步通_嵌入式Linux系统移植步步通_

    总的来说,“嵌入式Linux系统移植步步通”这份资源将引导学习者逐步完成从硬件选型、内核配置、驱动开发、系统构建到最终系统验证的全过程。对于初学者,这是一份宝贵的教程,能够帮助他们快速掌握嵌入式Linux系统...

    Fdisk 硬盘分区图解步步通

    【Fdisk硬盘分区图解步步通】 在计算机领域,硬盘分区是管理和组织硬盘空间的重要步骤。Fdisk(全称为Fixed Disk)是一款经典的命令行工具,主要用于在DOS系统下进行硬盘分区操作。本文将深入探讨Fdisk的工作原理、...

    Fdisk硬盘分区图解步步通

    【Fdisk硬盘分区图解步步通】 在计算机操作系统中,硬盘分区是管理和组织硬盘空间的重要方式,它将一个物理硬盘划分为多个逻辑区域,每个区域都有独立的驱动器字母或盘符,便于数据的存储和管理。Fdisk是早期...

    Fdisk硬盘分区图解步步通.chm

    Fdisk硬盘分区图解步步通.chm

    fdisk 硬盘分区图解步步通

    《fdisk硬盘分区图解步步通》是一部针对Linux系统中fdisk工具的详细教程,采用图文并茂的方式,便于读者理解和掌握硬盘分区的操作。fdisk是Linux系统中用于磁盘分区管理的重要工具,它允许用户创建、删除和修改硬盘...

    嵌入式Linux系统移植步步通_forgottenaah_linux_嵌入式_

    这可能涉及创建根文件系统(rootfs),其中包含运行系统所需的二进制文件、库、配置文件等。通常会使用BusyBox等工具集来减小文件系统的大小,同时满足基本功能需求。 最后,为了便于调试和更新,还需要建立引导...

    Fdisk硬盘分区图解步步通.rar

    本压缩包`Fdisk硬盘分区图解步步通.rar`提供了关于如何使用Fdisk进行硬盘分区的详细教程,其中包含`Fdisk硬盘分区图解步步通.chm`这个帮助文档。 硬盘分区的主要目的是将一个大的物理硬盘划分为多个逻辑驱动器,...

    Fdisk硬盘分区图解步步通(HTML)

    《Fdisk硬盘分区图解步步通》是一份深入浅出的教程,主要针对计算机用户,尤其是初学者,旨在帮助他们理解和掌握如何使用Fdisk工具进行硬盘分区操作。这份教程采用了图文并茂的方式,使得复杂的操作过程更加直观易懂...

    Fdisk 硬盘分区图解步步通,CHM类_免费软件

    《Fdisk硬盘分区图解步步通》是一款专为用户详细解析硬盘分区操作的教程,以CHM类电子书的形式提供,且是免费软件。这款软件适用于想要了解或掌握硬盘分区基础知识的人群,无论你是计算机新手还是有一定经验的技术...

    嵌入式Linux系统移植步步通

    第二部分 系统启动bootloader的编写(ADS).................................................................................14 1 工具介绍.......................................................................

    MSP430单片机入门提供步步通视频教程.txt

    该教程为MSP430单片机入门提供步步通视频教程,TXT文件里有百度云链接,永久有效,欢迎大家下载学习。

    嵌入式LINUX系统移植步步通

    该文档的目的是总结我们在工作中的一些经验,并把它们分享给喜欢ARM和Linux的朋友, 如有错误之处,请大家多多指点. 同样, 我们也希望更多人能把自己的工作经验和体会加入该文档,让大家共同进步.该文档是一份交流性...

    《Fdisk_硬盘分区图解步步通》

    《Fdisk硬盘分区图解步步通》是一本详细介绍Fdisk工具使用方法的教程,通过图解的方式使得学习者能够更加直观地理解这个经典的硬盘分区工具。Fdisk在早期的Windows系统中是主要的硬盘分区工具,它允许用户创建、删除...

Global site tag (gtag.js) - Google Analytics