将J2ME游戏移植到OPhone上的指导

来源:互联网 发布:js template.render 编辑:程序博客网 时间:2024/04/26 19:19

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上添加读取数据。

view plaincopy to clipboardprint?
  1. //打开记录仓储  
  2.             RecordStore rs=RecordStore.openRecordStore("users"true);  
  3.             String userName="无名";  
  4.             byte[] data=userName.getBytes();  
  5.             //添加数据  
  6.             rs.addRecord(data, 0, data.length);  
  7.               
  8.             //读取数据  
  9.             byte[] readData=rs.getRecord(1);  
  10.             String readUserName=new String(readData);  
  11.             //显示到控制台上  
  12.             System.out.println(readUserName);  

      在OPhone上保存数据可以使用Sqlite数据库,可以在库中创建多张表,在表中创建多个列,功能很强大,下面一段代码演示如何在OPhone上添加读取数据

view plaincopy to clipboardprint?
  1. // 打开数据库  
  2. SQLiteDatabase mdb = this.openOrCreateDatabase("db"0null);  
  3. // 创建表  
  4. String sql_create = "create table users (id int,username TEXT)";  
  5. mdb.execSQL(sql_create);  
  6.   
  7. // 添加数据  
  8. String sql_insert = "insert into users(id,username) values(1, '无名')";  
  9. mdb.execSQL(sql_insert);  
  10.   
  11. // 读取数据  
  12. Cursor cur = mdb.rawQuery("select id,username from users"null);  
  13. cur.moveToFirst();  
  14. String readUserName = cur.getString(1);  
  15. System.out.println("userName=" + readUserName);  
  16.   
  17. mdb.close();  

游戏开发中J2ME和OPhone相同之处
在游戏开发中,最重要,最难的是游戏算法,游戏算法代码行数一般会占代码的总行数50%以上。游戏算法是用标准的J2SE代码实现,在J2ME和 OPhone上都是一样的。开发游戏需要框架,如MVC, 框架与语言,开发技术无关。在J2ME和OPhone上使用MVC的代码是一样的。现在的手机游戏开发都使用编辑器,用编辑器来编辑地图,动作。编辑器的 开发可以使用awt,swing等开发技术。与J2ME,OPhone无关。

总结
因为J2ME和OPhone都是用Java语言开发。将游戏从J2ME移植到OPhone上主要要改界面绘制,按键,数据保存。其它地方基本不用改。所以将游戏从J2ME移植到OPhone是比较容易。