就像2d空战游戏,背景随着时间的推移一直不断滚动,这种效果一般如何实现,请作过游戏的前辈指导一下我的想法是背景就是一张bitmap,然后就根据时间推移来计算不断显示背景图的不同区域android绘图api目前还不时很熟,用canvas的cliprect能实现么?请指教

解决方案 »

  1.   

    可以用线程实现
    在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;
      

  2.   

    我看你的代码大体意思是不断的把画位图的位置向上移吧,但是其实我只是想实现背景的移动,drawBitmap我还得用来画画游戏中的物体那是不是应该用canvas的setbitmap来把背景设置成我的背景图,那这样的话如何滚背景呢??
      

  3.   

    你可以去研究下surfaceview,游戏图像主要用的这个
      

  4.   


    一般游戏就是这样做的吧,这个是背景向下移动,在ondraw方法里先画这个背景,让他移动,然后再画其他的都没问题的,我写的飞机射击游戏就是这样的~drawBitmap可以画多个图片的,只要分清楚顺序,不会覆盖就可以了
      

  5.   


    我这里写的canvas.drawBitmap(bitmap, 0, backY, paint);
    canvas.drawBitmap(bitmap, 0, backY - bitmap.getHeight(), paint);
    bitmap就是你的背景图,要画其他图片就按照正常的画就可以了