- 浏览: 706107 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
utyujin:
作者你好,首先自我注释一下我是一名UI设计师,最近在写关于屏幕 ...
android中的dp,px深度解析 -
eagledame:
<data android:scheme="p ...
Android利用系统广播---监听应用程序安装和卸载[转] -
圣经未来:
虽然帖子距今已有三年,但是我还是来评论一下。对于这段话: 这句 ...
android中的dp,px深度解析 -
passerby_whu:
如果Activity中已经有了很多id了。怎么样保证你指定的i ...
Android Layout 之 RelativeLayout,代码实现相对布局 -
passerby_whu:
u013023750 写道楼主你好 ...
android中的dp,px深度解析
路过某论坛,看到好贴,转载过来,留后用。
前言
小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。”
老大:“恩,不错,小白,你知道Android这个平台吧?”
小白:“恩,听过。听说和J2ME有很多共同点。”
老大:“(一阵奸笑)很多共同点是吧?”
小白:“恩。”
老大:“那好,你把这几个J2ME游戏给我移植到Android上去。”
小白:“……”
很多J2ME开发者可能都会遇到这样的临时性需求。其实J2ME程序往Android移植,并不是特别麻烦。
经过一番认真学习,小白开始整理起了笔记……
零 高级UI界面
J2ME的高级用户界面比较鸡肋,在现在大多数的应用里都看不到,多数稍微复杂点的界面都是手工画,或是用一些开源的高级UI库,但Android则不同,它的UI实用、方便,而且很美观,基本无需改动且定制方便。
一 设备差异
虽说普通的手机性能越来越高,屏幕也越来越大,但平均而言,运行J2ME的手机从性能和屏幕分辨率及附属功能来说不及Android手机。拿入门的HTC G1来说,CPU为528MHz,屏幕为3.17英寸触摸屏、HVGA 480×320像素,192MB RAM和256MB ROM。所以从J2ME移植到Android的程序可以暂时不考虑性能问题。
但要充分发挥Android手机的特点。要注意一下几点:
比如应用UI的布局可以更加自由,输入更加灵活,网络应用注意发挥3G、WIFI的速度优势。
游戏要注意可适当的用效率换效果,可增加动画、音效、背景音乐的质量,图片元素的大小,发挥高分辨率手机的优势,强大的运算能力可以让开发人员编写基于OpenGL的3D游戏,可以用一些吃CPU但效果不错的开发包,如Box2D仿真物理引擎开发包。
可以结合GPS定位、重力感应、话筒、指南针、触笔的压力感应等等让游戏的效果更加逼真。
三 开始移植
小白找到Android中对应的J2ME相关的替代类和替代方法后,开始噼里啪啦的改代码了。没过多久,首个俄罗斯方块算是移植成功。当他开始移植下一款游戏时,发现又要重复的改那些代码……
“可不可以减少代码的改动呢?”小白问自己。“可否用Android的相关代码构造一些和J2me里功能类似的代码呢?”
原则:尽量少改动J2ME项目的代码。用Android中对应的类改写成J2ME中的方法和类,减少以后移植的工作量,甚至实现无缝移植。
“或许我可以构造一个名为MIDlet实为Activity的类,这样J2me中的入口类就不用改动了”
用Activity类改装的MIDlet类:
public abstract class MIDlet extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startApp();
}
public abstract void destroyApp(boolean unconditional);
public String getAppProperty(String key) {
return null;
}
public abstract void startApp();
public void notifyDestroyed() {
}
public void notifyPaused() {}
public void pauseApp() {}
public void platformRequest(String URL) {}
public void resumeRequest() {}
}
MIDlet类我们解决了,接下来就是非常重要的Canvas类了。
J2me里的Canvas类相当于Android体系中的SurfaceView类,都是负责绘制显示界面的,游戏的大循环一半也在这两个类里实现,也就是都会实现Runnable类,更新逻辑和更新界面都在此类的大循环中处理。
Graphics类在J2me里负责绘图和排版样式等。
我们可以用Android里的Canvas类和Paint类共同组合一个Android里的Graphics类,如Graphics类的构造函数可这样定义:
public Graphics(Bitmap bitmap) {
this.bitmap = bitmap;
this.canvas = new Canvas(bitmap);
this.canvas.clipRect(0, 0, bitmap.getWidth(), bitmap.getHeight());
this.canvas.save(Canvas.CLIP_SAVE_FLAG);
this.paint = new Paint();
this.clip = canvas.getClipBounds();
}
Graphics里可以设置居中方式,在Android体系里我们用Paint类来实现相同的效果,例如:
public void setAlign(int align)
{
if(LEFT == align
||(Graphics.LEFT | Graphics.TOP) == align
||(Graphics.LEFT | Graphics.BOTTOM) == align)
{
paint.setTextAlign(Align.LEFT);
}else if(HCENTER == align
||(Graphics.HCENTER|Graphics.TOP) == align)
{
paint.setTextAlign(Align.CENTER);
}else if(RIGHT == align
||(Graphics.RIGHT | Graphics.TOP) == align)
{
paint.setTextAlign(Align.RIGHT);
}
}
所有的绘制方法也同样沿用J2me中的方法名,用Android体系的代码完成方法体,达到无缝移植。以绘制、填充矩形为例:
public void fillArc(int x,int y,int width,int height, int startAngle,int arcAngle) {
paint.setStyle(Style.FILL);
canvas.drawArc(new RectF(x,y,width,height), startAngle, arcAngle, true, paint);
}
public void drawArc(int x,int y,int width,int height, int startAngle,int arcAngle) {
paint.setStyle(Style.STROKE);
canvas.drawArc(new RectF(x,y,width,height), startAngle, arcAngle, true, paint);
}
再来说说按键处理:
大体思路就是获取Android中的按键消息后,修改封装一下,转换成J2me的键值和事件,然后传递给显示层。
先定义出J2me中的键值:
public class GameCanvas extends Screen {
public static final int UP = 1;
public static final int DOWN = 6;
public static final int LEFT = 2;
public static final int RIGHT = 5;
public static final int FIRE = 8;
public static final int GAME_A = 9;
public static final int GAME_B = 10;
public static final int GAME_C = 11;
public static final int GAME_D = 12;
public static final int KEY_NUM0 = 48;
public static final int KEY_NUM1 = 49;
public static final int KEY_NUM2 = 50;
public static final int KEY_NUM3 = 51;
public static final int KEY_NUM4 = 52;
public static final int KEY_NUM5 = 53;
public static final int KEY_NUM6 = 54;
public static final int KEY_NUM7 = 55;
public static final int KEY_NUM8 = 56;
public static final int KEY_NUM9 = 57;
public static final int KEY_STAR = 42;
public static final int KEY_POUND = 35;
}
经过中间一个转换方法:
public int keyCode4J2me = 0;
public int keyAction4J2me = 0;
public void changeToJ2meKey(int keyCode, KeyEvent e) {
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
keyCode4J2me = GameCanvas.DOWN;
keyAction4J2me = GameCanvas.DOWN;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
keyCode4J2me = GameCanvas.LEFT;
keyAction4J2me = GameCanvas.LEFT;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
keyCode4J2me = GameCanvas.RIGHT;
keyAction4J2me = GameCanvas.RIGHT;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
keyCode4J2me = GameCanvas.FIRE;
keyAction4J2me = GameCanvas.FIRE;
} else if (keyCode == KeyEvent.KEYCODE_0) {
keyCode4J2me = GameCanvas.KEY_NUM0;
} else if (keyCode == KeyEvent.KEYCODE_1) {
keyCode4J2me = GameCanvas.KEY_NUM1;
} else if (keyCode == KeyEvent.KEYCODE_2) {
keyCode4J2me = GameCanvas.KEY_NUM2;
}
}
转换成J2me的按键处理体系,转去调用J2me原生的keyReleased方法:
public boolean onKeyUp(int keyCode, KeyEvent e) {
changeToJ2meKey (keyCode,e);
keyReleased(keyActual);
return true;
}
其他的字体类、颜色类、等等都可以按此方法无缝移植。
Font字体类用Android中的FontMetrics重写。
而Graphics类中的setColor(int rgb)以及setColor(int r,int g,int b)方法,则可以修改Graphics类中Paint的颜色。如:
public void setColor(int r,int g,int b) {
int argb = (0xff000000)+(r<<16)+(g<<8)+b;
paint.setColor(argb);
}
小白心想: “或许我还可以用Android中的Canvas类改写一个J2me中的Graphics类,用Android中的Bitmap改装一个J2me中的Image类……然后把J2me游戏开发包javax.microedition.lcdui.game包里的GameCanvas类,Layer类,LayerManager类,Sprite类,TiledLayer类直接拿来用。嗯嗯,几乎不用改动原来的J2me代码了。第一个移植任务花费了一个周,以后一天就能移植一个小游戏啦。哈哈哈。”
四 后记
小白:“老大,游戏移植好了,请验收一下吧。”
老大:“恩……恩……动作很快嘛,我看看代码,恩……代码封装的不错,一会来我办公室,谈谈你转正的事。”
小白:“多谢老大。”
老大:“普通的程序员会熟练的使用轮子,优秀的程序员要学会自己造轮子!”
小白:“恩,我记住了。”
前言
小白:“老大,你让做的三个J2me游戏搞定了,请看DEMO。”
老大:“恩,不错,小白,你知道Android这个平台吧?”
小白:“恩,听过。听说和J2ME有很多共同点。”
老大:“(一阵奸笑)很多共同点是吧?”
小白:“恩。”
老大:“那好,你把这几个J2ME游戏给我移植到Android上去。”
小白:“……”
很多J2ME开发者可能都会遇到这样的临时性需求。其实J2ME程序往Android移植,并不是特别麻烦。
经过一番认真学习,小白开始整理起了笔记……
零 高级UI界面
J2ME的高级用户界面比较鸡肋,在现在大多数的应用里都看不到,多数稍微复杂点的界面都是手工画,或是用一些开源的高级UI库,但Android则不同,它的UI实用、方便,而且很美观,基本无需改动且定制方便。
一 设备差异
虽说普通的手机性能越来越高,屏幕也越来越大,但平均而言,运行J2ME的手机从性能和屏幕分辨率及附属功能来说不及Android手机。拿入门的HTC G1来说,CPU为528MHz,屏幕为3.17英寸触摸屏、HVGA 480×320像素,192MB RAM和256MB ROM。所以从J2ME移植到Android的程序可以暂时不考虑性能问题。
但要充分发挥Android手机的特点。要注意一下几点:
比如应用UI的布局可以更加自由,输入更加灵活,网络应用注意发挥3G、WIFI的速度优势。
游戏要注意可适当的用效率换效果,可增加动画、音效、背景音乐的质量,图片元素的大小,发挥高分辨率手机的优势,强大的运算能力可以让开发人员编写基于OpenGL的3D游戏,可以用一些吃CPU但效果不错的开发包,如Box2D仿真物理引擎开发包。
可以结合GPS定位、重力感应、话筒、指南针、触笔的压力感应等等让游戏的效果更加逼真。
三 开始移植
小白找到Android中对应的J2ME相关的替代类和替代方法后,开始噼里啪啦的改代码了。没过多久,首个俄罗斯方块算是移植成功。当他开始移植下一款游戏时,发现又要重复的改那些代码……
“可不可以减少代码的改动呢?”小白问自己。“可否用Android的相关代码构造一些和J2me里功能类似的代码呢?”
原则:尽量少改动J2ME项目的代码。用Android中对应的类改写成J2ME中的方法和类,减少以后移植的工作量,甚至实现无缝移植。
“或许我可以构造一个名为MIDlet实为Activity的类,这样J2me中的入口类就不用改动了”
用Activity类改装的MIDlet类:
public abstract class MIDlet extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startApp();
}
public abstract void destroyApp(boolean unconditional);
public String getAppProperty(String key) {
return null;
}
public abstract void startApp();
public void notifyDestroyed() {
}
public void notifyPaused() {}
public void pauseApp() {}
public void platformRequest(String URL) {}
public void resumeRequest() {}
}
MIDlet类我们解决了,接下来就是非常重要的Canvas类了。
J2me里的Canvas类相当于Android体系中的SurfaceView类,都是负责绘制显示界面的,游戏的大循环一半也在这两个类里实现,也就是都会实现Runnable类,更新逻辑和更新界面都在此类的大循环中处理。
Graphics类在J2me里负责绘图和排版样式等。
我们可以用Android里的Canvas类和Paint类共同组合一个Android里的Graphics类,如Graphics类的构造函数可这样定义:
public Graphics(Bitmap bitmap) {
this.bitmap = bitmap;
this.canvas = new Canvas(bitmap);
this.canvas.clipRect(0, 0, bitmap.getWidth(), bitmap.getHeight());
this.canvas.save(Canvas.CLIP_SAVE_FLAG);
this.paint = new Paint();
this.clip = canvas.getClipBounds();
}
Graphics里可以设置居中方式,在Android体系里我们用Paint类来实现相同的效果,例如:
public void setAlign(int align)
{
if(LEFT == align
||(Graphics.LEFT | Graphics.TOP) == align
||(Graphics.LEFT | Graphics.BOTTOM) == align)
{
paint.setTextAlign(Align.LEFT);
}else if(HCENTER == align
||(Graphics.HCENTER|Graphics.TOP) == align)
{
paint.setTextAlign(Align.CENTER);
}else if(RIGHT == align
||(Graphics.RIGHT | Graphics.TOP) == align)
{
paint.setTextAlign(Align.RIGHT);
}
}
所有的绘制方法也同样沿用J2me中的方法名,用Android体系的代码完成方法体,达到无缝移植。以绘制、填充矩形为例:
public void fillArc(int x,int y,int width,int height, int startAngle,int arcAngle) {
paint.setStyle(Style.FILL);
canvas.drawArc(new RectF(x,y,width,height), startAngle, arcAngle, true, paint);
}
public void drawArc(int x,int y,int width,int height, int startAngle,int arcAngle) {
paint.setStyle(Style.STROKE);
canvas.drawArc(new RectF(x,y,width,height), startAngle, arcAngle, true, paint);
}
再来说说按键处理:
大体思路就是获取Android中的按键消息后,修改封装一下,转换成J2me的键值和事件,然后传递给显示层。
先定义出J2me中的键值:
public class GameCanvas extends Screen {
public static final int UP = 1;
public static final int DOWN = 6;
public static final int LEFT = 2;
public static final int RIGHT = 5;
public static final int FIRE = 8;
public static final int GAME_A = 9;
public static final int GAME_B = 10;
public static final int GAME_C = 11;
public static final int GAME_D = 12;
public static final int KEY_NUM0 = 48;
public static final int KEY_NUM1 = 49;
public static final int KEY_NUM2 = 50;
public static final int KEY_NUM3 = 51;
public static final int KEY_NUM4 = 52;
public static final int KEY_NUM5 = 53;
public static final int KEY_NUM6 = 54;
public static final int KEY_NUM7 = 55;
public static final int KEY_NUM8 = 56;
public static final int KEY_NUM9 = 57;
public static final int KEY_STAR = 42;
public static final int KEY_POUND = 35;
}
经过中间一个转换方法:
public int keyCode4J2me = 0;
public int keyAction4J2me = 0;
public void changeToJ2meKey(int keyCode, KeyEvent e) {
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
keyCode4J2me = GameCanvas.DOWN;
keyAction4J2me = GameCanvas.DOWN;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
keyCode4J2me = GameCanvas.LEFT;
keyAction4J2me = GameCanvas.LEFT;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
keyCode4J2me = GameCanvas.RIGHT;
keyAction4J2me = GameCanvas.RIGHT;
} else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
keyCode4J2me = GameCanvas.FIRE;
keyAction4J2me = GameCanvas.FIRE;
} else if (keyCode == KeyEvent.KEYCODE_0) {
keyCode4J2me = GameCanvas.KEY_NUM0;
} else if (keyCode == KeyEvent.KEYCODE_1) {
keyCode4J2me = GameCanvas.KEY_NUM1;
} else if (keyCode == KeyEvent.KEYCODE_2) {
keyCode4J2me = GameCanvas.KEY_NUM2;
}
}
转换成J2me的按键处理体系,转去调用J2me原生的keyReleased方法:
public boolean onKeyUp(int keyCode, KeyEvent e) {
changeToJ2meKey (keyCode,e);
keyReleased(keyActual);
return true;
}
其他的字体类、颜色类、等等都可以按此方法无缝移植。
Font字体类用Android中的FontMetrics重写。
而Graphics类中的setColor(int rgb)以及setColor(int r,int g,int b)方法,则可以修改Graphics类中Paint的颜色。如:
public void setColor(int r,int g,int b) {
int argb = (0xff000000)+(r<<16)+(g<<8)+b;
paint.setColor(argb);
}
小白心想: “或许我还可以用Android中的Canvas类改写一个J2me中的Graphics类,用Android中的Bitmap改装一个J2me中的Image类……然后把J2me游戏开发包javax.microedition.lcdui.game包里的GameCanvas类,Layer类,LayerManager类,Sprite类,TiledLayer类直接拿来用。嗯嗯,几乎不用改动原来的J2me代码了。第一个移植任务花费了一个周,以后一天就能移植一个小游戏啦。哈哈哈。”
四 后记
小白:“老大,游戏移植好了,请验收一下吧。”
老大:“恩……恩……动作很快嘛,我看看代码,恩……代码封装的不错,一会来我办公室,谈谈你转正的事。”
小白:“多谢老大。”
老大:“普通的程序员会熟练的使用轮子,优秀的程序员要学会自己造轮子!”
小白:“恩,我记住了。”
发表评论
-
深入理解Android的密度独立性
2013-06-17 10:24 1870前言 安卓是一个只 ... -
滑动操作的维度研究
2013-06-13 10:44 1179提示:这篇文章 ... -
移动开发高价值资料参考[持续更新中]
2013-06-13 09:56 1540做人要厚道转载请注明出处:http://zhangkun71 ... -
手机产品设计之用户引导
2013-06-10 20:21 1416在手机产品的设计过程中,由于手机界面 ... -
Android 设计的几处硬伤
2013-06-08 11:31 1578[核心提示] 一些 Andro ... -
Android开发大牛们的博客[持续更新中]
2013-05-31 08:40 27做人要厚道转载请注明出处:http://zhangk ... -
LocalActivityManager的内部机制详解
2013-05-27 15:56 5200LocalActivityManager的内部 ... -
App调试内存泄露之Cursor深入研究
2013-05-24 15:20 0最近在工作中处 ... -
Android设计模式系列(6)--SDK源码之享元模式
2013-05-24 13:12 924享元模式,给我的感 ... -
Android设计模式系列(5)--SDK源码之备忘录模式
2013-05-24 11:15 1083定义(源于GoF《设计模式》):在不破坏封闭的前提下,捕获 ... -
Android设计模式系列(4)--SDK源码之模板方法模式
2013-05-24 10:39 889模板方法,和单例模 ... -
Android设计模式系列(3)--SDK源码之单例模式
2013-05-24 09:43 1007单例模式,可以说是GOF的23种设计模式中最简单的一个。这 ... -
Android设计模式系列(2)--SDK源码之观察者模式
2013-05-23 17:41 1311观察者模式,是一种非常常见的设计模式,在很多系统中随处可见 ... -
Android设计模式系列(1)--SDK源码之组合模式
2013-05-23 17:12 879Android中对组合模式的应用,可谓是泛滥成粥,随处可见, ... -
Android设计模式系列(0)--开篇
2013-05-23 17:11 1203有时候,最难的是坚持;有时候缺少的是信念。 看了很多 ... -
Android Design与Holo Theme详解
2013-05-22 14:06 1545在 国内,有个很有意思的现状。一方面,几个国内最大的公司/企 ... -
GitHub上最火的Android开源项目(完结篇)
2013-05-22 09:22 7701摘要:截至目前,在GitHub“最受欢迎的开源项目”系列文 ... -
二十六个月Android学习工作总结
2013-05-21 16:52 2397本文转自http://www.cnblog ... -
Android中的Layout_weight终极研究
2013-05-17 14:08 3983以前在做UI布局时,也经常用Layout_weight属性 ... -
谷歌I/O大会给开发者带来福音:推出最新Android Studio开发工具
2013-05-17 08:59 1409摘要:在Android Studio发布之后,无论国内外, ...
相关推荐
J2ME游戏移植到Android平台的技术要点 在本文中,我们将探讨如何将J2ME游戏移植到Android平台上。作为一名IT行业大师,我将详细地解释J2ME游戏移植到Android平台的技术要点。 首先, lets talk about the ...
【描述】中提到的“J2ME游戏移植Android文档”很可能包含了一系列步骤和最佳实践,指导开发者如何有效地进行移植工作。这个过程通常包括理解J2ME和Android之间的差异,识别和解决兼容性问题,以及利用特定工具和库来...
【J2ME游戏移植到Android手机】是一个技术性较强的主题,涉及到两个不同的移动平台:Java ME(J2ME)和Android。J2ME是早期移动设备上广泛使用的开发框架,而Android则是现代智能手机的主要操作系统。当需要将J2ME...
手机游戏是目前深受广大手机用户喜爱的一种娱乐软件,各大运营商都有自己的手机游戏平台,比如中国移动的百宝箱,MM平台,当然...有了这个优点也就意味着所有的J2ME程序都可以非常快速的迁移到OPhone(Adnroid)平台。
当需要将J2ME应用移植到Android时,会遇到一些兼容性问题,因为两者的核心库和API有所差异。本篇文章将深入探讨如何将J2ME中的`Image`、`Font`、`Graphics`等关键类进行封装,以便在Android平台上运行。 首先,我们...
在本文中,我们将深入探讨如何将J2ME游戏移植到Android平台的关键点,以及两者之间的主要差异。 首先,让我们简要了解一下J2ME和Android的基础。J2ME(Java 2 Micro Edition)是Java 2的一个子集,设计用于嵌入式...
然而,随着智能手机的普及,Android成为了主流的操作系统,许多开发者和用户开始寻找将J2ME应用移植到Android平台的方法。本文将详细介绍J2ME应用移植到Android的步骤、挑战以及解决方案。 首先,理解两者之间的...
**J2ME到Android移植SDK 1.16详解** J2ME(Java 2 Micro Edition)是Java平台的一...通过深入理解和熟练使用这个SDK,开发者可以实现快速、高效地将J2ME应用程序和游戏移植到Android,同时保持原有用户基础的满意度。
j2me移植到android 代码替换开发包:替换j2me平台的Graphics ,Image ,HttpConntion,RecordStore,Player,Connector,Font,Canvas...
【劲乐团 J2ME 移植】是一款将热门的音乐节奏游戏《劲乐团》移植到Java ME(J2ME)平台上的作品。J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专门用于开发在移动设备、嵌入式系统等资源受限的环境中的...
《快速转化J2ME程序为Android程序》 随着Android智能手机的普及,许多开发者面临的问题是如何将原有的J2ME应用程序高效地迁移到Android平台,以利用更广泛的设备和用户基础。J2MEBuilder,一个名为android_midp.jar...
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
对于开发者而言,J2ME加载器提供了移植旧Java游戏到Android的可能性,从而扩大了这些游戏的受众群体。同时,这也为那些想将Android应用与Java ME生态结合的开发者提供了创新的途径。然而,需要注意的是,并非所有...
**J2ME游戏引擎详解** Java 2 Micro Edition(J2ME)是Oracle公司为小型设备和嵌入式系统设计的一种Java平台。它主要用于移动设备,如早期的智能手机和平板电脑,提供运行Java应用程序的能力。在J2ME的环境中,游戏...
在 J2ME 中开发游戏,理解其基本结构至关重要,因为这将直接影响到游戏的性能、可移植性和用户体验。下面我们将深入探讨 J2ME 游戏的基本结构。 一、J2ME 开发环境 J2ME 游戏开发通常需要一个集成开发环境(IDE),...
总之,j2ME游戏开发涉及到多方面的技术和技巧,从基础的MIDP API学习,到游戏设计、图形动画和音频处理,再到性能优化和分发部署,每一个环节都是成功开发游戏的关键。通过深入理解和实践,开发者可以创造出丰富的...
j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发j2me游戏开发
J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏J2ME小游戏
通过分析这些J2ME游戏源代码,你可以学习到如何在有限的硬件条件下创建引人入胜的游戏体验,掌握游戏设计、性能优化以及跨平台开发的技巧。同时,这也能帮助你了解移动游戏开发的历史,因为随着技术的发展,现代移动...