Android游戏开发基础和经验。 本文来自:中国高速网()。 详细源码参考: 简介:Android游戏开发基础和经验是本文要介绍的内容。 主要是了解和学习Android游戏开发的内容实例,具体是关于Android游戏的。 开发内容的详细解释请参见这篇文章。 做一个类似俄罗斯方块的Android游戏开发安卓游戏辅助工具开发思路与实现,游戏...Android游戏开发的基础知识和经验就是本文要介绍的内容。 主要是了解和学习Android游戏开发的内容实例。 参见Android游戏开发内容详细讲解。 本文。 开发一款类似俄罗斯方块的Android游戏。 游戏是完全触摸屏的,具有音乐播放等一些基本功能。 该游戏基于Android SDK1.6。 由于我是Android新手,这款游戏也是我开发的第一个Android游戏,所以还有很多不足之处。 我只是想分享一下我在开发过程中的一些经验和技巧。 希望对新手有所帮助。 还请各位专家不吝赐教。 1、android游戏开发的基本框架。 Android游戏开发首先就是View类开发框架。 在Android游戏开发中,任何View只需要重写onDraw方法即可实现界面显示。 游戏的核心就是不断地绘制和刷新界面。 Android中最常见的方法是使用Handler来更新UI线程。 也可以直接在run方法中使用postInvalidate()方法来更新线程中的界面。
其次,是SurfaceView类开发框架。 当需要开发复杂的游戏并且程序的执行效率非常高时,View类就无法满足需要。 这个必须用SurfaceView类来开发,这也是主流的开发框架。 使用时需要创建和销毁,并监控情况何时发生变化。 这需要实现 SurfaceHolder.Callback 接口。 如果想要对拉好的布进行裁剪并控制其尺寸,则需要使用SurfaceHolder来完成处理。 程序中需要通过getHolder方法获取SurfaceHolder对象,还需要addCallback方法添加“回调函数”。 简单 SurfaceView 类框架 publicclassGameSurfaceViewextendsSurfaceViewimplementsSurfaceHolder.Callback,RunnableSurfaceHolderSurfaceHolderpublicGameSurfaceView(Contextcontext)publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,intheight){10.11.publicvoidsurfaceCreated(SurfaceHolderholder12.newThread(this).start() ;13.14.publicvoidsurfaceDe stroyed(SurfaceHolderholder){15.16.publicvoidrun( ) {17.while(true){18.try{19.Thread.sleep(1000);20.21.catch(Exception23.synchronized(mSurfaceHolder){24.Draw();25.28.privatevoidDraw()29.Canvascanvas=mSurfaceHolder.lockCanvas ();30.31.mSurfaceHolder.unlockCanvasAndPost(canvas);32.:setContentView(GameSurfaceView 对象).
2.游戏开发中常用的基础类。 在Android游戏开发中,2D图形是通过graphics类来显示的。 Graphics包括Canvas(画布)、Paint(画笔)、Color(颜色)、Bitmap(图片)等常见的类。例如canvas类的drawText方法用于绘制字符串,drawRect用于绘制一个矩形,可以使用paint类的setAlpha设置透明度。 同时Color.rgb方法可以直接获取整数值表示的颜色。 另外,绘制图片时,应先从资源文件中加载图片,然后再绘制到屏幕上。 具体代码如下: Bitmapmypicnull;mypic=((BitmapDrawable)getResources().getDrawable(R.drawable.pic)).getBitmap();CanvascanvasnewCanvas();canvas.drawBitmap(mypic,x,y,null); 3.关于自适应屏幕分辨率的问题。 在Android游戏开发中数据报告,每款手机的分辨率不同注定是程序员开发游戏时必须考虑的问题。 我们怎样才能写出一个可以在不同分辨率的机器上运行良好的程序呢? 这将是决定一款游戏品质的重要因素之一。
游戏资源res下有3个与图片存储相关的文件夹:drawable-hdpi、drawable-mdpi、drawable-ldpi。 drawable-hdpi 存储高分辨率图片,WVGA(480x800)、FWVGA(480x854),drawable-mdpi 存储中等分辨率图片安卓游戏辅助工具开发思路与实现,如 HVGA(320x480),drawable-ldpi 存储低分辨率图片,如 QVGA(240x320) ),系统会根据机器的分辨率自动去这些文件夹中查找对应的图片。 当然,除了准备几组不同分辨率的图片外,还必须在代码中灵活处理图片的坐标和触摸屏事件的坐标,这样才能达到一个程序在多个机型上运行的目的。 DisplayMetricsdmnewDisplayMetrics();intscreenWidthintscreenHeightdm.heightPixels;通过上面的代码可以获取当前模型的屏幕像素,然后通过比例转换,可以灵活适配代码中的坐标。 4. 如何锁定屏幕是横屏还是竖屏。 一款游戏通常不会被设计成横屏和竖屏都可以玩,并且会固定在横屏或竖屏上。 在Android游戏开发中,只需要在AndroidManifest.xml中进行配置即可。 例如添加此行 android:screenOrientation="landscape" (横向为水平,纵向为垂直)。
android:screenOrientation="landscape" 例如(横向为水平橙光游戏,纵向为垂直)。 5. 在视图之间跳转。 在Android游戏开发中,一款游戏不会只有一个视图,比如欢迎动画、游戏画面、菜单页面等,如何实现它们之间的跳转呢? 这里有一个方法,就是使用Handler类实现。 直接看代码: HandlermyHandlernewHandler(){publicvoidhandleMessage(Message msg){ 然后使用:myHandler.sendEmptyMessage(1)来实现切换。 注:希望学习Android游戏开发内容对您有所帮助!参考资料