请教j2me手机游戏地图问题……

coharder 2009-05-08 12:00:04
我看教程上做的地图都是一个屏幕那么大的地图,那如何做超级玛丽的地图,赛车车道的地图,就是汽车一直跑,然后地图一直往前变化,谢谢!
...全文
154 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
redcurtain 2009-06-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hc0120 的回复:]
引用楼主 coharder 的帖子:
1 一个屏幕那么大的地图
2 超级玛丽的地图,赛车车道的地图,就是汽车一直跑,然后地图一直往前变化

1 是单屏游戏
2 是滚屏游戏
你去看一些关于滚屏游戏的资料就可以了。
[/Quote]
这样的回答比较好
这种东西本来就不是一两句能说清的
yangc_83 2009-05-15
  • 打赏
  • 举报
回复
LZ去找下,地图编辑器,方便写地图.
你自己头脑里要有整张地图,那么你要画出来的只是,你到的地方及它的周围的地图了,其他的地方看不到就不用画出来了!
liqia76 2009-05-15
  • 打赏
  • 举报
回复
去 参考下 GAME 包的 画布类和 双缓冲技术

LayerManager

简单讲 地图可以很大人原地走步 地图往后移动 达到动画效果
zhaoyb0319 2009-05-14
  • 打赏
  • 举报
回复
有可能是一张大地图,而滚动的效果,就相当于一个照相机,在不同的区域拍照,它指向哪里就显示哪里
1.0 用 setClip(int x, int y, int width, int height) 控制
2.0 可以用简单的setViewWindow(int x, int y, int width, int height)
gmxstar 2009-05-14
  • 打赏
  • 举报
回复
o
JarodYv 2009-05-14
  • 打赏
  • 举报
回复
最常用的处理方式是分段读取地图数据。设置一个地图缓冲,当缓冲数据少于某个阈值时,load下一屏的地图到缓冲中。
shally131 2009-05-14
  • 打赏
  • 举报
回复
可以那么做

mBgY ++;
mBgY = sClampShortLoop((short)0, mBgY, (short)160);
//***************
graphics.drawImage(mBg, 0, mBgY, Graphics.LEFT|Graphics.TOP);
graphics.drawImage(mBg, 0, mBgY-160, Graphics.LEFT|Graphics.TOP);
graphics.drawImage(mBg, 0, mBgY+160, Graphics.LEFT|Graphics.TOP);

这里是一张图片在滚动,那么你就需要滚动你的缓冲区或者整个屏幕
coharder 2009-05-08
  • 打赏
  • 举报
回复
小弟初学,还要弄什么数组什么的……请大家点拨
hc0120 2009-05-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 coharder 的帖子:]
1 一个屏幕那么大的地图
2 超级玛丽的地图,赛车车道的地图,就是汽车一直跑,然后地图一直往前变化
[/Quote]
1 是单屏游戏
2 是滚屏游戏
你去看一些关于滚屏游戏的资料就可以了。
吐泡泡的鱼 2009-05-08
  • 打赏
  • 举报
回复
简单说,就是用各种数组来保存赛车一路上会遇到的各种设施的信息,赛车类游戏我们一般是不做镜头转移的,这跟RPG的处理是有所不同的.

//仙人掌出现的位置
cLeftPos = new int[][]
{
{
53, 53, 53, 51, 48, 46, 43, 39, 34, 29,
24, 18, 12, 7, -1, -7
},
{
100, 95, 93, 95, 97, 98, 102, 105, 106, 111,
115, 115, 120, 126, 126, 131
}
};

cRightPos = new int[][]
{
{
115, 115, 115, 117, 120, 122, 126, 129, 135, 139,
144, 149, 154, 160, 165, 171
},
{
100, 95, 93, 95, 97, 98, 102, 105, 106, 111,
115, 115, 120, 126, 126, 131
}
};


比如上面这段代码,保存了地图中的要绘制仙人掌的地方,cLeftPos表示在赛道左侧,cRightPos表示在赛道右侧,一维为X坐标,一维为Y坐标,
我们根据实际情况绘制就可以了,当然还要加上各种逻辑,比如碰撞检测之类的:)

13,100

社区成员

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

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