请教游戏中的滚动背景怎么做?

austin_minny 2011-10-17 03:22:11
就像2d空战游戏,背景随着时间的推移一直不断滚动,这种效果一般如何实现,请作过游戏的前辈指导一下

我的想法是背景就是一张bitmap,然后就根据时间推移来计算不断显示背景图的不同区域

android绘图api目前还不时很熟,用canvas的cliprect能实现么?请指教
...全文
304 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
meichen8050753 2011-10-19
  • 打赏
  • 举报
回复
先去学下系统的游戏开发知识吧,不然很容易迷失的。
cherry0327 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cherry0327 的回复:]

引用 1 楼 cherry0327 的回复:

可以用线程实现
在onDraw方法里
canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
然后在线程的run方法里
backY = backY + 10 >= scree……
[/Quote]

我这里写的canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
bitmap就是你的背景图,要画其他图片就按照正常的画就可以了
cherry0327 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cherry0327 的回复:]

可以用线程实现
在onDraw方法里
canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
然后在线程的run方法里
backY = backY + 10 >= screenHeight ? screenHeight - b……
[/Quote]

一般游戏就是这样做的吧,这个是背景向下移动,在ondraw方法里先画这个背景,让他移动,然后再画其他的都没问题的,我写的飞机射击游戏就是这样的~drawBitmap可以画多个图片的,只要分清楚顺序,不会覆盖就可以了
wyx100 2011-10-18
  • 打赏
  • 举报
回复
设置坐标,移动背景图片的坐标就行了,不过你的时刻更新界面,这样才能绘制出来
meichen8050753 2011-10-18
  • 打赏
  • 举报
回复
学学OpenGL ES吧。
czhong111 2011-10-18
  • 打赏
  • 举报
回复
你可以去研究下surfaceview,游戏图像主要用的这个
austin_minny 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cherry0327 的回复:]
引用 7 楼 cherry0327 的回复:

引用 1 楼 cherry0327 的回复:

可以用线程实现
在onDraw方法里
canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
然后在线程的run方法里
ba……
[/Quote]

理解了,就是一个图层一个图层画,多谢
ch_984326013 2011-10-17
  • 打赏
  • 举报
回复
设置坐标,移动背景图片的坐标就行了,不过你的时刻更新界面,这样才能绘制出来
austin_minny 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cherry0327 的回复:]
可以用线程实现
在onDraw方法里
canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
然后在线程的run方法里
backY = backY + 10 >= screenHeight ? screenHeight - bi……
[/Quote]
我看你的代码大体意思是不断的把画位图的位置向上移吧,但是其实我只是想实现背景的移动,drawBitmap我还得用来画画游戏中的物体

那是不是应该用canvas的setbitmap来把背景设置成我的背景图,那这样的话如何滚背景呢??
cherry0327 2011-10-17
  • 打赏
  • 举报
回复
可以用线程实现
在onDraw方法里
canvas.drawBitmap(bitmap, 0, backY, paint);
canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
然后在线程的run方法里
backY = backY + 10 >= screenHeight ? screenHeight - bitmap.getHeight() : backY + 10;

80,492

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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