如何有效的进行LayerManager的更新处理

yefeng177 2005-03-11 10:12:43
问题是这样的
我在一个LayerManager上有若干Sprite
在游戏一局结束后,需要更换包括地图背景TileLayer
重新加载敌人Sprite等若干Layer

目前的处理方式是首先删除LayerManager中的所有图层,如下
for(int i = 0; i < layerManager.getSize(); i++){
layer = layerManager.getLayerAt(i);
layerManager.remove(layer);
}

再重新加载各个图层
可是很不稳定,拿TileLayer来说吧,控制台跟踪显示它所对应的图片引用已经更新
可是有的时候还是显示上次的背景
而且有的时候,上次游戏产生的最后一帧Sprite往往还停留在画面上
郁闷啊,请教!!

...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yefeng177 2005-03-15
  • 打赏
  • 举报
回复
... ...
yefeng177 2005-03-14
  • 打赏
  • 举报
回复
再顶顶吧,大家平时没有过这方面的问题么
cuilichen 2005-03-12
  • 打赏
  • 举报
回复
看看
yefeng177 2005-03-12
  • 打赏
  • 举报
回复
我已经清屏了的

对于layermanager,由于我要移动视野,需要setViewWindow()
所以在这里是需要的

我找了个笨办法
就是在重新加载的时候把原先的LayerManager删除
再重新实例化一次,就可以了

但是难道必须如此处理?每次都重新生成再重新加载一遍sprite?
为什么?请教!!...

贝壳鱼 2005-03-11
  • 打赏
  • 举报
回复
你的sprite 没封装成类吗。而且感觉LayerManager ,写小游戏,用它没啥必要,直接用Sprite paint就行。LayerManager 实现画面抖动还不错。

背景地图,也是封装成类,用的时候加载进来

个人意见。
行业达人 2005-03-11
  • 打赏
  • 举报
回复
//clear screen
g.setColor(0,0,0);
g.fillRect(0,0,getWidth(),getHeight());

13,100

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧