J2ME Game开发笔记
n5
在信息时代客观障碍已不复存在所谓障碍都是主观上的如果你想研发什么新的技术你不需要几百万美元的资金你只需要在冰箱里放满比萨和可乐再有一台便宜的计算机和与之献身的决心你即可拥有任何你想拥有的编程境界- John Carmack
展开
-
Nokia S60 IO操作内存泄漏不可不察
Nokia7650,3650游戏运行过程中,有时会出现“存储已满”的对话框,出现的位置不固定游戏运行过程中,有时出现“应用程序错误 NullPointerExcept”,“程序已关闭 MidpUi”的对话框游戏运行过程中,有时会出现“程序已关闭 MidpUi ViewSrv 9”的对话框,出现的位置不固定其实这个问题是由S60的getResourceAsStream方法内存泄漏的b原创 2005-07-20 12:10:00 · 2392 阅读 · 3 评论 -
初次使用JBuilder 7-若干小问题
初次使用JBuilder 7-若干小问题1 MobileSet问题 JBuilder7需另外安装MobileSet, Mobileset自带了一个WTK. 如果不安装MobileSet,JB7配置JDK时不能自动识别WTK,安装MobileSet后,可以通过配置JDK的方法加入新的WTK2 资源文件问题 JBuilder的所有源文件都应该放在source path中,可以在工程属性中设置sourc原创 2005-07-25 09:21:00 · 1704 阅读 · 3 评论 -
同时多处异常
程序出现exception时,在一个外包函数处捕获到了,显示为函数a出现异常,然后去a中捕获却没捕获成功,但是仍然发生了异常.原来是外包函数中调用的另一个函数b也产生了同样的异常.同时多处异常-小心!原创 2005-03-29 18:22:00 · 2081 阅读 · 0 评论 -
Eclipse Tips
1.在工具条上有个文本形象的按钮"show source of selected element only".当编辑类的某个成员(方法或域)时,按下这个按钮,则当前窗口会只显示你正在编辑的类成员.再按一下则恢复.2.显示java文件行号.菜单中选择Window->Preferences打开Preferences窗口后选择Java->Editor,在右边的选项中选中Show line numbers原创 2005-04-12 16:09:00 · 2191 阅读 · 0 评论 -
运行Nokia模拟器的一个注意事项
这是一个老问题了,原来用WTK的时候就有,在WTK中启动Nokia的模拟器,如果先前已经打了包,那么运行的是打包的程序,想当年经常会很郁闷为什么改动了没效果,后来养成一个习惯,将jar装到手机测试后随手删除。 今天用JBuilder的时候又碰到了这个问题,也是Nokia的模拟器,如果已经建立了一个archive,那么Nokia模拟器运行的总是包,呵呵,所以要么将arc原创 2005-08-23 14:34:00 · 3648 阅读 · 2 评论 -
开发易于移植的J2ME游戏(二)
开发易于移植的J2ME游戏(二)2005.8.27 时间过得真快啊!第一篇是5.25写的,已经3个月过去了...我也开始了新的工作。这一篇算是对我以前工作的一些经验总结吧 更希望能抛砖引玉,有想和俺共鸣一下的,请一定给这篇文章留言喽。。(在其他地方看到此文者请去http://blog.csdn.net/n5留言)二 编写易于移植的J2ME代码 我写第一个J2ME游戏的时候,根本就没想过原创 2005-08-30 13:36:00 · 1766 阅读 · 2 评论 -
NokiaS60 UI API bug
1 旋转变换后向缓冲上贴的时候clip信息丢失2 无法创建透明muttable Image此两点,致命伤,带来许多不变原创 2005-04-18 10:59:00 · 5010 阅读 · 2 评论 -
Motorola V80,E398数据
上 -1下 -6左 -2右 -5中 -20左软 -21右软 -22rms 13312heapsize 815092原创 2005-04-21 11:28:00 · 2076 阅读 · 0 评论 -
模拟器出现内存不足异常
昨天出现了模拟器内存不足异常,原因是控件分行的代码遭遇了死循环,情况是这样的:我的控件设置文本时自动分行,依据一个最大宽度maxWidth,这个maxWidth为控件宽度-边框间距.一般情况下这个maxWidth是大于一个字符宽度的.而我也没做任何检测.但,昨天的情况,控件宽度没有初始化,导致maxWidth对于没有经过安全检测的代码,使用时一定要小心,幸好这个控件只是我自己用,还能检测出bug.原创 2005-04-30 10:39:00 · 4552 阅读 · 0 评论 -
J2ME中使用随机数
产生0~n之间的随机数(ran.nextInt()>>>1)%n或(ran.nextInt()&0x7FFFFFFF)%n产生-n~0之间的随机数(ran.nextInt() | 0x80000000 )%n原创 2005-05-20 10:53:00 · 2886 阅读 · 1 评论 -
开发易于移植的J2ME游戏(一)
开发易于移植的J2ME游戏(一)说明:此文为给J2ME开发网(www.j2medev.com)电子期刊的专稿,转载请先联系本人(mobiledev@163.com)J2ME游戏开发中,移植是个问题。各种手机的屏幕大小,按键,支持的API和性能各不相同,要想一次开发,到处运行并非易事。本文从几个方面简要讨论一下开发易于移植的J2ME游戏的方法,每一节分别对应一个具体问题。一 不大不小的Size问题1原创 2005-06-16 09:46:00 · 1921 阅读 · 1 评论 -
NokiaS60 drawImage
使用NokiaS60的DirectGraphics.drawImage时要注意,当同时使用clip和旋转/翻转时,clip的将是旋转后的图片。所以要在setClip中填入选择后你的子图在图片上的位置原创 2006-01-18 13:39:00 · 1831 阅读 · 0 评论 -
J2ME Game开发笔记(整编版)
J2ME Game开发笔记(整编版)2006.5重贴于CSDN BLOG注:我从2004年9月份到2005年8月份在csdn blog上断断续续记录的开发笔记,并在www.j2medev.com上发表过三篇整理版的笔记。现在将这些笔记重新分类整理。如果有人转载这篇东西,请包含所有内容,不要删改!我的Emai:happyfirecn@yahoo.com.cn---------------原创 2006-05-12 14:29:00 · 2520 阅读 · 0 评论 -
专业手机游戏开发基础(1)
游戏的基本结构 游戏是什么呢?在游戏中,往往是显示各种各样的画面,玩家可以做一些设定好的控制,画面根据玩家的控制有所变化。从这儿可以看出,游戏至少需要三个功能-显示画面,接受玩家输入和对输入产生反馈。这就是常说的渲染,输入输出和逻辑三个模块。将这三个模块组合在一起有很多方法。比如事件驱动-画面保持不变直到接受到输入事件,程序进行逻辑运算然后改变画面。而游戏往往不是这样,游戏是时间原创 2006-12-31 22:27:00 · 2501 阅读 · 0 评论 -
J2ME游戏中的图片处理
J2ME游戏中的图片处理说明:此文仅发表在J2ME开发网和我的blog上(blog.csdn.net/n5),转载必须经过本人同意(Email: mobiledev@163.com )。 图片资源乃是游戏的外衣,直接影响一个游戏是否看上去很美。在J2ME游戏开发中,由于受到容量和内存的两重限制,图片使用受到极大的限制。在这种环境中,处理好图片的使用问题就显得更加重要。 本文从容量和原创 2005-03-15 09:01:00 · 2576 阅读 · 1 评论 -
J2ME中查表法使用三角函数
CLDC和MIDP都没有提供三角函数,而且CLDC1.0中也没有浮点数,所以我们的选择是查表。使用8位定点数的sin和cos表。下面是wtk自带demo中的代码,只提供了有限的几个角度,实际使用时根据需要细化角度值。// sines of angles 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, all *256 private static fina原创 2005-06-29 19:28:00 · 4776 阅读 · 0 评论 -
Nokia7650(v4.46)MMAPI问题
Nokia7650(v4.46)使用MMAPI时,在使用Manage的createPlayer创建midi或wav player时,程序自动退出,且无任何提示信息。其他版本的7650没有试过。尚不知道此bug发生的原因和解决方法。在程序中检测机型如果为7650则不播放midi和wav,也只是权宜之计。原创 2005-03-03 14:16:00 · 1486 阅读 · 0 评论 -
J2ME Game开发笔记-压缩还是不压缩
做J2ME的都知道Midlet Suite的容量实在太小了,于是不免想做点压缩。前些天,我就尝试了一次压缩。我自己定义的地图文件里有3层数据,其中2,3层有大片连续分布的相同的值。 唉?我一琢磨,使用一个简单的行长编码压缩,仅对这个值进行行长编码,算法很简单速度又不慢,却可以大大减小地图文件的大小。看起来真的很不错诶!说干就干,忙了半天,又改地图编辑器,又改游戏中读地图的代码。总算搞定,试了一下,原创 2004-09-26 20:47:00 · 1601 阅读 · 1 评论 -
J2ME Game开发笔记 - 移植一法
近日观察某些游戏的源代码(反编译后的),发现有个方法挺方便游戏的移植的。定义一个接口(比如stringTable)将游戏中所用到的静态字符串都定义为接口的常量。然后,让使用到这些字符串的类实现stringTable接口。这样移植的时候只要修改接口里面的字符串就行了。当然,对于游戏中坐标的定位,最好使用getWidth(),getHeight()还有Font类的方法stringWidth,不要定死了原创 2004-09-26 20:48:00 · 1669 阅读 · 0 评论 -
J2ME Game开发笔记-尝试IO优化
正在开发的一个游戏,由于读地图的时候做了图片切割,所以速度比较慢。(在我开发上一个游戏的时候,读取地图时没有装载切割图片,速度非常快,看来IO操作的速度和createImage,drawImage相比是微不足道的)对于IO的优化也许根本不会明显的提高速度,但我还是试了一下。 分析了一下代码,在最初的代码中为了比较方便的读取各种类型的数据,使用DataInputStream套接Inpu原创 2004-09-26 20:45:00 · 2797 阅读 · 1 评论 -
J2ME开发笔记-键盘响应
J2ME开发笔记-键盘响应 不同的机型对于键盘事件的响应不一样。经过我的测试,Nokia 7210,3100一次只能接受一个按键信息。(我写了个测试程序,发现如果一个键被按下后没有松开,则KeyPressed事件不会再产生,即其他键的按下操作无效)所以,用缓冲处理控制精灵运动时,如果规定只能四方向运动。如果up已按下,再按下left,精灵的运动方向并不会改变。不过将按键缓冲。按下up,按下le原创 2004-10-30 23:06:00 · 1820 阅读 · 0 评论 -
J2ME Game开发笔记 - 多机型移植经验谈
J2ME Game开发笔记 - 多机型移植经验谈 [2004-11-29] 开发的时候平台是Nokia 40,然后移植到Nokia 60, Moto V, SE等,总结一下大概需要几个版本。1。 Nokia 40版, 使用Midp1.0+Nokia UI API2。 Nokia 60版, 使用Midp1.0+NOkia原创 2004-11-29 12:55:00 · 1913 阅读 · 2 评论 -
百宝箱应用编译打包事宜
百宝箱应用编译打包事宜1 编译时,设置javac 的target vm为1.1即可通过移动检测。wtk中无法实现。在Eclipse中可以在java-compiler-Compliance and Classfiles中做以下设置:Compiler compliance level: 1.4Generated .class files compatibility: 1.1Source compati原创 2005-02-22 14:48:00 · 1863 阅读 · 0 评论 -
Nokia"不能运行应用程序"错误新解
Nokia手机运行J2ME程序的时候出现“不能运行应用程序”的错误,一般都是内存不足引起的,但今天遇到这样的错误,却发现是另一个原因。即当使用nokia的UI API,DirectGraphics的drawImage时,如果旋转参数设置不当,也会出现“不能运行应用程序”的错误。原创 2005-02-21 18:23:00 · 1577 阅读 · 0 评论 -
Nokia S60的几个问题
Nokia S60的几个问题1. 不能每帧调用 System.gc(),否则严重降低fps2. Nokia S60机器的不同机型对于translate 和 setClip的处理不一样。在Nokia N-Gage QD等机型中,setClip是相对于translate以后的坐标计算的,而在Nokia 6600,6670等机型中,setClip不受translate的影响,永远只相对于屏幕左上角(0,原创 2005-02-24 17:17:00 · 2693 阅读 · 0 评论 -
Eclipse集成Motorola模拟器
Eclipse集成Motorola模拟器在Eclipse的菜单/工具条中选择Run->External Tools,打开面板后,选择program,然后new一个新的配置1 在Location中填入Moto模拟器的路径,如:C:/Program Files/Motorola/SDK v4.2 for J2ME/EmulatorA.1/bin/emujava.exe,Moto的不同模拟器支持n种不同原创 2005-02-28 11:29:00 · 2131 阅读 · 1 评论 -
Motorola手机J2ME应用问题
Motorola手机J2ME应用问题1 应用程序图标 必须在jad 文件Midlet-Icon属性中指定图标文件,Midlet-1中指定的图标无效 Moto V系列图标大小应为15*15,其他尺寸无法显示。2 左右软键问题 Motorola手机操作系统设定是:右软键确认,左软键取消。所以,我们的程序应该和这个习惯保持一致。3 Key Code Moto V的key code不同于其他Midp2原创 2005-02-28 13:49:00 · 1394 阅读 · 0 评论 -
MIDP2.0 Canvas全屏问题
MIDP2.0 Canvas可以调用setFullScreenMode(true)将Canvas设置成全屏,但设置成全屏后新的Canvas width & height的获得对于不同手机却并不一样。1 MotoV系列 调用setFullScreenMode(true)后,将触发sizeChanged事件,此事件从系统接受两个参数,即为Canvas全屏后的width & height,通过这个事件可原创 2005-02-28 14:04:00 · 1580 阅读 · 0 评论 -
NokiaS60模拟器异常退出
症状:模拟器自动关闭,没提示任何错误原因:使用了Nokia UI API中的灯光或振动控制,而Nokia S60部分机型和对应的模拟器不支持这两个特性.原创 2005-06-21 09:28:00 · 3228 阅读 · 1 评论 -
检测机型,总是有点用处的
检测机型,总是有点用处的在J2ME开发中,往往遇到根据不同机型做不同事情的情况,比如Nokia3650的键盘比较特殊,Nokia7650不支持mmapi,所以需要获得机型信息。下面是一段简单的代码public static void checkPlatform(){ String platform = System.getProperty("microedition.platform")原创 2005-06-23 15:44:00 · 2176 阅读 · 0 评论 -
Nokia系统bug两则
Nokia系统bug两则1 Nokia7650(V4.46)应用程序目录显示bug 应用程序安装后,打开应用程序目录,显示错误提示: "程序已关闭 MidpUi USER9",应用程序目录无法进入。 分析后发现,原来是新安装的应用程序没有在mainfest.mf中的midlet-1属性中指定应用程序图标,导致程序目录无法显示图标。 在我所见到NokiaS40机器上和NGageQD上,如果图原创 2005-03-03 14:05:00 · 1527 阅读 · 1 评论 -
专业手机游戏开发基础(2)
状态机 状态机是编译原理的内容,看上去挺复杂的,不过说白了就是选择分支结构。但我为什么要提状态机呢?其实它是一个简化问题的好工具。再复杂的问题都可以被分解成若干小问题去解决。虽然一个游戏很复杂,但我们把它分解成若干块,分而治之,就简单多了。分类的依据就是状态。我们可以将一个游戏划分成很多状态。比如主菜单状态,控制主角状态,暂停状态等。在状态中可以再细分子状态。一直分下去,原创 2006-12-31 22:36:00 · 2489 阅读 · 2 评论