Android 游戏开发的一些基础和个人经验
2010-09-10 01:10:00 来源:WEB开发网try{
Thread.sleep(1000);
}
catch(Exception e){
}
synchronized(mSurfaceHolder){
Draw();
}
}
}
private void Draw() {
Canvas canvas= mSurfaceHolder.lockCanvas();
......
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
然后在activity类中 :setContentView(GameSurfaceView的对象)。
二、游戏开发中常用到的基本类
Android中通过graphics类来显示2D图形,graphics中包括了Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图片)等常用类。
例如绘制字符串用canvas类的drawText方法来实现,drawRect用来绘制矩形,设置透明度可以用paint类的setAlpha,同时 Color.rgb方法可以直接获得整形数值代表的颜色。此外在绘制图片时应该首先从资源文件中装载图片,然后才能绘制到屏幕上去。具体代码如下:Bitmap mypic = null; mypic=((BitmapDrawable)getResources().getDrawable(R.drawable.pic)).getBitmap(); Canvas canvas = new Canvas(); canvas.drawBitmap(mypic,x,y,null);
三、关于自适应屏幕分辨率的问题
每款手机分辨率的不同注定是程序员开发游戏必须考虑的问题,怎样才能写一个程序而达到可以在不同分辨率的机子上运行良好,这将是决定一个游戏好坏的重要因素之一。在游戏资源res下有三个和图片存储有关的文件夹:drawable-hdpi、drawable-mdpi、drawable-ldpi。 drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854),drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480),drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320),系统会自动根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。当然,除了准备好几组不同分辨率的图片以外,在代码中图片坐标和触屏事件的坐标都要灵活的处理,这样才能实现一个程序多机型运行的目标。
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;
通过以上代码可以获得当前机型的屏幕像素,然过比列换算可以实现代码中坐标的灵活应用。
更多精彩
赞助商链接