做了一个J2ME的手机游戏,但在支持JAVA的手机上运行出现重影,是什么原因?

来源:百度知道 编辑:UC知道 时间:2024/09/22 21:36:59
用Eclipse、WTK、EclipseMe做了一个手机游戏,但在手机上运行,精灵运动的轨迹都显示在手机上,在WTK中的DefaultColor模拟器上运行都正常。不知道是什么原因?
望大家帮帮忙。
在WTK中的DefaultColor模拟器上运行正常啊,坐标和屏幕刷新怎么会有问题呢?

我猜你没做“双缓冲”。计算机的计算速度远远高于手机。自然不会有刷新速度的问题,手机就不一样了。给你个代码参考:
public void dubleBuffering(Graphics g){
if(offScreenImage == null){//这个offScreenImage指内存里的图,不显示在屏幕上
offScreenImage = Image.createImage(width, height);//创建图片赋予内存里的图
}
Graphics gOffScreen = offScreenImage.getGraphics();把内存的图绘制出来,仍处于不显示状态
int c = gOffScreen.getColor();
gOffScreen.setColor(0);
gOffScreen.fillRect(0, 0, width, height);
gOffScreen.setColor(c);
paint(gOffScreen);//调用绘制方法,把内存的图显示出来
}
}

突然想到一个可能。希望你遇到的不是这个原因。每次重绘图像之后,都需要刷新下屏幕的。否则会连续出现之前绘制的图像。方法不难,绘制一个矩形覆盖屏幕即可。

坐标设置的不对吧2008年最新手机彩信铃声 热门流行铃声下载 手机歌曲 移动推荐 www.12530user.cn

缓冲问题,建议采用双缓冲。J2ME宝典里有介绍,其他书里也应该 有,因为是一项比较重要的技术嘛~·~~

照你的说法,如果cartoonboy的双缓冲的也试过了,那么有可能这个手机对sprite支持的支持不够好造成的,另外建议你不必用高级的API,就是canvas就行了,它什么都能做出来,现在的java游戏都只用它。

画布刷新的问题吧

坐标设置的不对吧