快速业务通道

J2ME游戏开发技巧 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
rn false; } public int getX() {  return x; } public int getY() {  return y; } }

kSetNode类负责记录被删除方块的坐标,它重载equals()方法用来判断两个方块是否是同一个方块。kSet类是由kSetNode对象组成的没有相同元素的集合,用单链表实现,并且提供了 getFirst()、add()、clear()、isEmpty()、contains()等方法供其它类调用。编写和使用一些这样的工具类,将大大加快编程的速度,也使程序变得更加清晰。

J2ME游戏开发技巧(4)

时间:2011-01-13

矫正屏幕坐标

GridOne这个游戏是专门为MotoT720开发的,也就是说游戏背景图片大小和MotoT720型手机的大小是相等的。如果它在那些屏幕比MotoT720大的手机上运行,游戏背景图片会显示在屏幕左上角而影响美观,这时就要用到屏幕矫正技术,使得游戏背景图片居中显示。矫正屏幕坐标代码如下:

public class BlocksCanvas extends Canvas implements Runnable { private final int addX;//坐标矫正 private final int addY; private final int SCREEN_X;//屏幕顶点 private final int SCREEN_Y; private final int WAITBLOCK_X;//等待方块顶点 private final int WAITBLOCK_Y; private final int SCORES_X;//分数顶点 private final int SCORES_Y; private final int STAR_X;//五角星的顶点 private final int STAR_Y; public BlocksCanvas() {  //取得当前手机屏幕的高度和宽度  height = getHeight();  width = getWidth(); //坐标矫正量  addX = (width-120)/2;  addY = (height-142)/2; //初始化屏幕参数  SCREEN_X = addX + 48;//屏幕顶点  SCREEN_Y = addY + 10;  WAITBLOCK_X = addX + 19;//等待方块顶点  WAITBLOCK_Y = addY + 103;  SCORES_X = addX + 36;//分数顶点  SCORES_Y = addY + 34;  STAR_X=addX+4;//五角星的顶点  STAR_Y=addY+70; } }

首先把所有有关屏幕的参数都定义成private final int型变量。这里之所以加上final 修饰符,是因为不希望变量附初值后,它们的值会发生变化;之所以不加static修饰符,是因为要在其函数中初始化变量,而不是在定义时就初始化好了。先用getHeight()和getWidth()函数取得当前手机屏幕的高度和宽度,再计算出需要的偏移量addX和addY,然后加到各屏幕参数上,这样游戏内容就会居中显示了。图2与图3是效果比较图。

J2ME游戏开发技巧 - 编程入门网

图2 矫正前

J2ME游戏开发技巧 - 编程入门网

图3 矫正后

还有一点需要注意,用getHeight()取得的并不是手机屏幕的真实高度,而是手机屏幕的高度减去Command标签高度,因为屏幕需要留出地方显示Command标签。

J2ME游戏开发技巧(5)

时间:2011-01-13

合理使用内存

本来使用Java编程是不需要关心内存使用的,因为Java有它引以为豪的垃圾处理机制。但到了J2ME里,情况发生了变化,因为手机的内存只有屈指可数的几百K,再也不能像在J2SE里那样大手大脚了。否则就会发现,即使程序没有任何语法和逻辑错误,也不能在模拟器中运行。下面给出合理使用内存的几个建议:

1.尽可能使用本地变量代替类成员,减少对象的创建,最好能重新利用对象;

2.不要试图在初始化的时候把所有Form或者Canvas对象都读入内存中,而应该在需要的时候再创建,虽然这样在显示上会有一些延迟,但是总比程序不能运行或者内存溢出要好;

3.一旦对象不需要使用就及时将其置为null,以便能够被垃圾处理器回收,适当的时候调用System.gc()语句提示虚拟机调用垃圾处理器;

4.必须记住Java的内存管理是有向边机制,所以对于不使用的对象,千万不要让正在使用的对象指向它,以免内存得不到回收;

5.尽量使图片占有的字节数小一点,可以使用Fireworks在保证图片质量同时减小图片的大小;

即使做到上面几点,也不能保证程序不会发生

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号