Android免费FPS游戏,Android开发中FPS游戏实现的两种方式比较

1.orm

private boolean drawall=false;

private RefreshHandler mRedrawHandler = new RefreshHandler();

class RefreshHandler extends Handler {游戏

@Override

public void handleMessage(Message msg) {

KetrisCanvas.this.update();

KetrisCanvas.this.invalidate();

}ci

public void sleep(long delayMillis) {

this.removeMessages(0);

sendMessageDelayed(obtainMessage(0), delayMillis);

}

};

long mLastMove=0;

long mMoveDelay=30;

public void update() {

long now = System.currentTimeMillis();开发

if (now - mLastMove > mMoveDelay) {

//gameLogic(); 这里是游戏逻辑

mLastMove = now;

}

mRedrawHandler.sleep(mMoveDelay);

}

public void onDraw(Canvas canvas)

{super.onDraw(canvas);

this.paint(); //这里是绘制到缓冲屏幕

canvas.drawBitmap(g.offs, 0, 0, g.p);

}rem

在适当位置执行update();get

2.it

public class KetrisCanvas extends SurfaceView implements SurfaceHolder.Callback

{

在构造方法完成   下面2句

holder = this.getHolder();//获取holder

holder.addCallback(this);

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// TODO Auto-generated method stub

}

Thread t;

boolean isrun=true;

final SurfaceHolder holder;

@Override

public void surfaceCreated(SurfaceHolder holder) {

// TODO Auto-generated method stub

t=new Thread(){

public void run()

{ while(isrun)

{

long start=System.currentTimeMillis();

Canvas canvas=KetrisCanvas.this.holder.lockCanvas(null);

//这里完成游戏逻辑

paint();//这里是屏幕绘制      canvas.drawBitmap(g.offs, 0, 0,null );

KetrisCanvas.this.holder.unlockCanvasAndPost(canvas);

long end=System.currentTimeMillis();

if(200>end-start)

{

try{Thread.sleep(200-(end-start));}catch(Exception e){}

}

}

}

};

t.start();

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

// TODO Auto-generated method stub

if(t!=null)

{ isrun=false;

}

}

喜欢开放游戏的朋友加我好友!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值