android飞机大战功能,安卓飞机大战(二) SurfaceView实现自制背景

用SurfaceView写一个自制的背景图,并且可以移动,加上安卓飞机大战(一)中的BackgroundManager类,可以直接使用

GameView代码:

public class GameView extends SurfaceView implements SurfaceHolder.Callback,Runnable{

private SurfaceHolder hd=null;

private Canvas canvas=null;

private BackgroundManager backgroundmanager;

public GameView(Context context) {

super(context);

this.setFocusable(true);

hd=this.getHolder();

hd.addCallback(this);

}

public void run() {

while(isrunning){

mydraw();

try {

Thread.sleep(100);//每100s刷新一次屏幕

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

public void mydraw(){

try{

if(hd!=null){

canvas=hd.lockCanvas();

canvas.drawColor(Color.BLUE);

backgroundmanager.drawbackground(canvas);

}catch(Exception e){

e.printStackTrace();

}finally{

if(canvas!=null)

hd.unlockCanvasAndPost(canvas);

}

}

public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {

// TODO Auto-generated method stub

}

public void surfaceCreated(SurfaceHolder arg0) {

thread=new Thread(this);//定义一个新线程

thread.start();

backgroundmanager=new BackgroundManager(this);

}

@Override

public void surfaceDestroyed(SurfaceHolder arg0) {

}

MainActivity 代码:

public class MainActivity extends Activity {

private GameView gameview=null;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

gameview=new GameView(this);

setContentView(gameview);

}

这样就能实现背景的循环移动了,layout中的xml文件直接不用管。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值