Android 游戏开发的一些基础和个人经验
2010-09-10 01:10:00 来源:WEB开发网大家好,很高兴可以在这里给大家介绍一些android游戏开发的基础知识。首先我想说的是,本人也只是一个刚出道的手机开发程序员,接触android 还没到两个月的时间。在此期间做了一个类似俄罗斯方块的android游戏,游戏完全又触屏来实现还有音乐播放等等一些基本的功能,游戏是基于 android sdk1.6完成。由于初识android,这个游戏也是本人开发的第一个andriod游戏,所以还有很多不足,这里只是想分享一下在开发过程中一些自己总结的经验和小技巧,希望对新手有所帮助,高手也请不吝赐教。
一、首先我们应该知道android游戏开发的一些基本框架。
首先是View类开发框架。在Andriod中,任何一个View类都只需要重写onDraw方法来实现界面显示。游戏的核心是不断的绘图和刷新界面,在 Android中最常用的方法是利用Handler来实现UI线程的更新,也可以直接在run方法中使用postInvalidate()方法在线程中更新界面。其次,是SurfaceView类开发框架。当需要开发复杂的游戏,而且对程序的执行效率很高时,View类就不能满足需求了,这是必须用 SurfaceView类进行开发,这也是主流开发框架。在使用时需要对其进行创建、销毁,情况改变时进行监视,这就要实现 SurfaceHOlder.Callback接口,如果要对被绘制的花布进行裁减,控制其大小时都需要使用SurfaceHOlder来完成处理。在程序中,SurfaceHOlder对象需要通过getHolder方法来获得,同时还需要addCallback方法来添加“回调函数”。
例如下面一个简单的SurfaceView类框架:
public class GameSurfaceView extends SurfaceView implements SurfaceHolder.Callback,Runnable {
SurfaceHolder mSurfaceHolder = null;
public GameSurfaceView(Context context) {
super(context);
mSurfaceHolder = this.getHolder();
mSurfaceHolder.addCallback(this);
this.setFocusable(true);
}
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){
}
public void surfaceCreated(SurfaceHolder holder ){
new Thread(this).start();
}
public void surfaceDestroyed(SurfaceHolder holder){
}
public void run(){
while (true){
更多精彩
赞助商链接