J2ME游戏移植到OPhone思路
在手机游戏中程序要处理的主要有游戏界面,按键,数据保存,游戏算法。游戏算法是用java语言实现。在OPhone,J2ME上都一样。游戏界面上主要 有图片和文字。在OPhone上画图片,文字,按键,数据保存的代码与J2ME不一样。区别也不是很大,J2ME游戏移植到OPhone上主要要改的就是 画图,画文字,按键,数据保存的代码,其它的基本不用改。
游戏开发中J2ME和OPhone的区别概述
下面列出了J2ME和OPhone的主要区别
作用
|
J2ME实现方式
|
OPhone实现方式
|
启动程序时执行的方法
|
MIDlet.startApp()
|
Activity. onCreate()
|
低级界面类
|
Canvas
|
View
|
绘制界面的方法
|
Canvas.paint()
|
View.onDraw()
|
画笔类
|
Graphics
|
Canvas
|
画图的方法
|
Graphics.drawImage()
|
Canvas.drawBitmap()
|
画文字的方法
|
Graphics.drawString()
|
Canvas. drawText()
|
图像类
|
Image
|
Bitmap
|
按键处理的方法
|
keyPressed()
|
onKeyDown()
|
触摸屏处理的方法
|
pointerPressed()
|
onTouchEvent()
|
数据保存
|
RMS
|
Sqlite
|
启动程序
|
Push
|
BroadcastReceiver
|
下面针对J2ME和OPhone的不同之处分别作介绍
启动程序时执行的代码的区别
程序启动时要加载资源,把某一个界面对象显示在手机屏幕上。J2ME中启动程序会执行MIDlet子类的startApp方法,在OPhone中启动程序会执行Activity子类的onCreate方法。
低级界面类的区别
软件的界面可以使用低级界面或高级界面(控件)来画,低级界面最大的优点是程序员对低级界面控制力强,能指定图,文字的具体坐标,能画各种图形。游戏开发 中界面都使用低级界面来完成,在J2ME中低级界面类是Canvas,在OPhone中低级界面类是View。
绘制界面方法的区别
J2ME中绘制界面的方法是Canvas.paint(),OPhone中绘制界面的方法是View.onDraw()
画笔类区别
画笔类的主要功能是画图,画文字,画各种图形(矩形,线),在J2ME中画笔类是Graphics,在OPhone中画笔类是Canvas。
画图的方法代码的区别
游戏开发中地图,人物,道具等很多内容都是用图片表示的,在J2ME中画图用的代码是Graphics.drawImage(),在OPhone中画图用的代码是Canvas.drawBitmap()。
画文字的区别
游戏中的对话,剧情都是以文字的方式显示出来的。在J2ME中画文字用的代码是Graphics.drawString(),在OPhone中画文字用的代码是Canvas. drawText()。
图像类的区别
在游戏中人物,地图都是图像,在J2ME中图像对象是Image,在OPhone中图像对象是Bitmap。
按键处理的区别
在游戏中玩家与手机的交互主要靠按键,玩家通过按键来控制人物的移动,在J2ME中处理按键的代码是keyPressed,在OPhone中处理按键的代码是onKeyDown
数据保存的区别
在J2ME上保存数据用RecordStore,RecordStore类似于数据库中的一张表,表里有很多条记录,一个记录只有两列,一列是recordId,自动加1,另一列是byte[]类型,下面一段代码演示如何在J2ME上添加读取数据。
在OPhone上保存数据可以使用Sqlite数据库,可以在库中创建多张表,在表中创建多个列,功能很强大,下面一段代码演示如何在OPhone上添加读取数据
游戏开发中J2ME和OPhone相同之处
在游戏开发中,最重要,最难的是游戏算法,游戏算法代码行数一般会占代码的总行数50%以上。游戏算法是用标准的J2SE代码实现,在J2ME和 OPhone上都是一样的。开发游戏需要框架,如MVC, 框架与语言,开发技术无关。在J2ME和OPhone上使用MVC的代码是一样的。现在的手机游戏开发都使用编辑器,用编辑器来编辑地图,动作。编辑器的 开发可以使用awt,swing等开发技术。与J2ME,OPhone无关。
总结
因为J2ME和OPhone都是用Java语言开发。将游戏从J2ME移植到OPhone上主要要改界面绘制,按键,数据保存。其它地方基本不用改。所以将游戏从J2ME移植到OPhone是比较容易。