2004年11月10日

j2ME中在Canvas中实现菜单功能

在CSDN论坛里经常有人问到如何实现在Canvas中加入菜单的功能。一开始只是告诉他们怎么解决,也就是自己画一个就是了,一切要从头来,包括画面,内容,以及控制。但是这样的解决方案肯定是太浪费精力了,因为每一次开发的时候都要重新编写,而且这也不是一件非常容易的事情,毕竟涉及到许多的复杂的 Canvas的操作。说起来工作量也是不少的,而且几乎每一个游戏中都会涉及到,这样想来,就会联系到软件的重用问题,软件工程告诉我们,尽量不要编写重复的代码,如果一段相似的代码需要不断的重头编写,我们就应该考虑把他提取出来,抽象一下,做为一个固定的组件来使用,这非常符合软件工程的想法。在J2ME中已经有了许多成熟的组件提供给我们使用了,如Screen的子类中,都是一些可以重用的组件,如Form,List, ChoiceGroup,Gauge,TextField等,但是那些组件却无法运用到Canvas之中,如果想要使用这些组件的话,只能够先离开 Canvas,完成之后再返回,但这并不符合一些要求,现在的J2ME中,游戏的功能占了大部分,许多人使用J2ME就是为了开发游戏,因而在游戏中的菜单功能肯定会用到的,几乎不用考虑了,但是由于Canvas非常的底层,用他编写的话,所有的一切都要控制,如果每开发一个游戏就要重新写一遍菜单的代码,确实太麻烦了。因而如果能够开发一个可以用于Canvas之中的如Screen组件,那肯定是解决了大的问题。在MIDP2.0之中提供了一个用户可以自定义的组件,参照这个组件,我们可以研究一下如何在Canvas这中提供如同Form中常用的组件。第一个要提供的应该是类似于List功能的组件,因为游戏中进行选择的话,会涉及到一些的如难度,功能等,如果能够提供一个浮动于游戏画面之上的List 组件的话,那可以解决这些选择的问题。再接下来的应该是类似于Gauge的组件了,在一些RPG游戏中,有时候需要显示用于的生命值之类的内容,如果可以提供一个状态条的话,那可以解决不少的问题。 再接下的应该是TextField的功能,用于用户可以互动的输入一些内容,在游戏的进行中进行一些调整。现在这些只是刚刚开始设计,可能真正的设计起来的时候会有一定的难度,毕竟由于手机的屏幕千差万别,要想实现一个通用的组件,还是很有挑战性的。不过我决定下一步进行深入的研究,希望可以最终的实现他,也算是为J2ME游戏的开发做一点贡献,可以为大家省下不少的力气。

没有评论:

发表评论