Android游戏开发之旅
AndroidTiger
`︵.o緣妢兲紸顁 ǐ愛誰ヤ.莪決顁て⒈隻風箏⒈輩子祇會為⒈根綫冒險る~把愛看淡點.伈僦少痛點
展开
-
Android游戏开发之旅(三)View类详解
<br /> 在Android游戏开发之旅二中我们讲到了View和SurfaceView的区别,今天Android123从View类开始着重的介绍 Android图形显示基类的相关方法和注意点。(文/Android开发网)<br /><br />自定义View的常用方法:<br /><br />onFinishInflate() 当View中所有的子控件均被映射成xml后触发<br /><br />onMeasure(int, int) 确定所有子元素的大小<br转载 2010-11-25 13:32:00 · 1352 阅读 · 0 评论 -
Android游戏开发之旅(九)VideoView类剖析
<br />有关SurfaceView相关的内容今天Android123继续延用系统的示例类VideoView来让大家深入了解Android平台的图形绘制基础类的实现原理。大家可能会发现VideoView类的控制方面无法改变,我们可以通过重构VideoView类来实现更个性化的播放器<br /> public class VideoView extends SurfaceView implements MediaPlayerControl { private String TAG转载 2010-11-25 13:40:00 · 1483 阅读 · 0 评论 -
Android游戏开发之旅(十)位图旋转
在Android中图形的旋转和变化提供了方便的矩阵Maxtrix类,Maxtrix类的setRotate方法接受图形的变换角度和缩放,最终Bitmap类的createBitmap方法中其中的重载函数,可以接受Maxtrix对象,方法原型如下public static Bitmap createBitmap (Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)参数的具体意思source 源 bitmap转载 2010-11-25 13:41:00 · 2024 阅读 · 0 评论 -
Android游戏开发之旅(十六) 异步音乐播放
<br />在Android游戏开发中我们必须考虑背景音乐播放问题,在Android平台中提供了MediaPlayer类可以播放声音,但是游戏除了播放音乐外还需要考虑画面的流畅性,以及多种音效同时播放,所以必须用到Android多线程机制和异步音效播放。Android SDK从1.0开始就提供了AsyncPlayer类,这里我们为了根据我们自己的需要可以派生或修改出更灵活的播放类。<br />import android.content.Context;import android.net.Ur转载 2010-11-25 14:03:00 · 1355 阅读 · 0 评论 -
Android游戏开发之旅(二十) 双按事件捕获
<br /> 对于游戏开发中我们可能经常要用到双按屏幕,在Android 1.6以前并没有提供完善的手势识别类,在Android 1.5 SDK中我们可以找到android.view.GestureDetector.OnDoubleTapListener,但是经过测试仍然无法正常工作,不知道什么原因,如果您知道可以联系android123@163.com共享下。最终我们使用的解决方法如下<br /> 最终我们测试的如下:<br />public class TouchLayout e转载 2010-11-25 14:14:00 · 1101 阅读 · 1 评论 -
Android游戏开发之旅(一)
<br /> 今天Android123开始新的Android游戏开发之旅系列,主要从控制方法(按键、轨迹球、触屏、重力感应、摄像头、话筒气流、光线亮度)、图形 View(高效绘图技术如双缓冲)、音效(游戏音乐)以及最后的OpenGL ES(Java层)和NDK的OpenGL和J2ME游戏移植到Android方法,当然还有一些游戏实现惯用方法,比如地图编辑器,在Android OpenGL如何使用MD2文件,个部分讲述下Android游戏开发的过程最终实现一个比较完整的游转载 2010-11-25 13:29:00 · 2470 阅读 · 0 评论 -
Android游戏开发之旅(八)SurfaceView类实例
<br />有关SurfaceView我们将通过三个系统自带的例子来深入掌握Android绘图必会的SurfaceView,今天我们以SDK中的Sample 游戏lunarlander中的LunarView具体实现,Android123建议大家导入该游戏工程到你的Eclipse然后自己编译先玩一下这个游戏,然后再看代码比较好理解。<br />class LunarView extends SurfaceView implements SurfaceHolder.Callback转载 2010-11-25 13:39:00 · 1785 阅读 · 0 评论 -
Android游戏开发之旅(十一)View中手势识别
<br />有关Android平台的游戏开发中我们需要涉及到控制,在开始的Android游戏开发之旅中我们提到了按键和轨迹球的控制方式,从今天开始 Android123开始给出大家游戏中其他的一些控制方式,比如今天的手势操作和未来重力感应。<br /><br />很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而 android.gesture.Gesture是转载 2010-11-25 13:43:00 · 1218 阅读 · 0 评论 -
Android游戏开发之旅(十二)Sensor重力感应(1)
从Android手机开始,主流的智能机纷纷加入了感应器Sensor硬件,常见的有光线感应器、重力感应器、加速感应器,而更高级的有磁极方向、陀螺仪、距离感应器、温度感应器等等。对于Android游戏开发,我们主要用到重力、加速、磁力和陀螺仪四种,当然部分游戏可能需要GPS或Cellid定位来修正一些位移信息。从系统中提高的感应器主要在android.hardware中,我们可以看到系统提供了 android.hardware.SensorEventListener、Sensor和Senso转载 2010-11-25 13:44:00 · 1543 阅读 · 0 评论 -
Android游戏开发之旅(五)Path和Typeface
<br />今天我们继续处理上次 Android游戏开发之旅(四)Canvas和Paint实例 中提到的Path路径和Typeface字体两个类。对于Android游戏开发或者说2D绘图中来讲Path 路径可以用强大这个词来形容。在Photoshop中我们可能还记得使用钢笔工具绘制路径的方法。Path路径类在位于 android.graphics.Path中,Path的构造方法比较简单,如下<br />Path cwj=new Path(); //构造方法<br />下面我们画一个封闭的原型路转载 2010-11-25 13:36:00 · 2095 阅读 · 0 评论 -
Android游戏开发之旅(二)View和SurfaceView
<br /> 在Android游戏当中充当主要的除了控制类外就是显示类,在J2ME中我们用Display和Canvas来实现这些,而Google Android中涉及到显示的为view类,Android游戏开发中比较重要和复杂的就是显示和游戏逻辑的处理。这里我们说下 android.view.View和android.view.SurfaceView。SurfaceView是从View基类中派生出来的显示类,直接子类有GLSurfaceView和VideoView,可以看出GL转载 2010-11-25 13:30:00 · 1453 阅读 · 0 评论 -
Android游戏开发之旅(四)Canvas和Paint实例
<br />昨天我们在Android游戏开发之旅(三)View类详解中提到了onDraw方法,有关详细的实现我们今天主要说下Android的Canvas和Paint对象的使用实例。<br /><br />Canvas类主要实现了屏幕的绘制过程,其中包含了很多实用的方法,比如绘制一条路径、区域、贴图、画点、画线、渲染文本,下面是Canvas类常用的方法,当然Android开发网提示大家很多方法有不同的重载版本,参数更灵活。<br /><br />void drawRect(RectF转载 2010-11-25 13:33:00 · 1392 阅读 · 0 评论 -
Android游戏开发之旅(六)自定义View
<br />有关Android的自定义View的框架今天我们一起讨论下,对于常规的游戏,我们在View中需要处理以下几种问题: 1.控制事件 2.刷新View 3. 绘制View。(文/Android开发网)<br /><br /> 1. 对于控制事件今天我们只处理按键事件onKeyDown,以后的文章中将会讲到屏幕触控的具体处理onTouchEvent以及Sensor重力感应等方法。<br /><br /> 2. 刷新view的方法这里主要有invalidate(int l,转载 2010-11-25 13:37:00 · 1623 阅读 · 0 评论 -
Android游戏开发之旅(七)自定义SurfaceView
<br />今天我们说下未来的Android游戏引擎模板架构问题,对于游戏我们还是选择SurfaceView,相关的原因Android123已经在Android游戏开发之旅二 View和SurfaceView中说的很清楚了,这里我们直接继承SurfaceView,实现 SurfaceHolder.Callback接口,处理surfaceCreated、surfaceChanged以及 surfaceDestroyed方法,这里我们并没有把按键控制传入,最终游戏的控制方面仍然由Vi转载 2010-11-25 13:38:00 · 1452 阅读 · 0 评论 -
Android游戏开发之旅(十二)Sensor重力感应(2)
<br />有关Android游戏开发中的Sensor感应示例今天我们将一起来讨论,对于目前最新的Android 2.2平台而言仍然没有具体的感应判断逻辑,下面我们一起定义下常用的感应动作事件。首先Android123提醒大家由于是三轴的立体空间感应所以相对于轨迹球、导航键的上下左右外,还提供了前后的感应,所以我们定义最基本的六种空间方向。<br />public static final int CWJ_UP = 0;public static final int CWJ_DOWN = 1转载 2010-11-25 13:59:00 · 1503 阅读 · 0 评论 -
Android游戏开发之旅(十五) 按键中断处理
<br />有关Android平台上游戏开发中我们需要处理一些特别的按键事件,对于突发的事情我们需要特别的考虑,比如突然来电话了和游戏中按下一些特殊的键,比如拍照键<br />@Override public boolean dispatchKeyEvent(KeyEvent event) { switch (event.getKeyCode()) { case KeyEvent.KEYCODE_VOLUME_U转载 2010-11-25 14:01:00 · 1534 阅读 · 0 评论 -
Android游戏开发之旅(十七) 图像渐变特效
<br />在Android游戏开发中我们不免要涉及到一些图形特效处理,今天主要看下Android平台下实现渐变效果。在android.graphics中我们可以找到有关Gradient字样的类,比如LinearGradient 线性渐变、RadialGradient径向渐变和 角度渐变SweepGradient 三种,他们的基类为android.graphics.Shader。为了显示出效果android123使用一个简单的例子来说明。<br /> 一、LinearGradient线性渐转载 2010-11-25 14:06:00 · 1477 阅读 · 0 评论 -
Android游戏开发之旅(十八) SoundPool类
<br />对于Android的游戏音效播放,上次Android123已经告诉大家使用SoundPool类来实现,由于本次我们的游戏需要多种音效同时播放所以就选择了SoundPool类,它和Android提供常规的MediaPlayer类有哪些不同呢? <br /> 1. SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作。但是这里Android开发网提醒大家如果音效文件过大没有载入完成,我们调用play方法时可能产生严重的后果,这里Android SDK提供了一个Sou转载 2010-11-25 14:08:00 · 1239 阅读 · 0 评论 -
Android游戏开发之旅(十九) 分辨率大全
<br />对于Android游戏开发我们不得不像iPhone那样思考兼容Android平板电脑,对于苹果要考虑iPad、iPhone 3GS和iPhone 4等屏幕之间的兼容性,对于几乎所有的分辨率Android123总结了大约超过20中粉笔阿女郎的大小和对应关系,对于开发Android游戏而言可以考虑到未来的3.0以及很多平板电脑的需要。<br /> 常规的我们可能只考虑QVGA,HVGA,WVGA,FWVGA和DVGA,但是抛去了手机不谈,可能平板使用类似 WSVGA的1024x57转载 2010-11-25 14:13:00 · 1177 阅读 · 0 评论 -
Android游戏开发之旅(十四) 游戏开发实战一
<br />从今天开始Android123将开始带领大家进入Android游戏开发实战篇,本次我们首个游戏为2D的基于SurfaceView的类似横版卷轴游戏。第一天我们说下需要做哪些准备:<br /> 一、游戏地图编辑器,在J2ME时代我们可能都是用GIF分割多帧或BMP上放置多个图片通过减少文件头来压缩体积,但是在Android平台上开发游戏我们不需要那么节省,不过资源的释放仍然很重要,否则会出现OutOfMemoryError这样的悲剧发生。一般简单的2D平面游戏地图都是使用二维数组转载 2010-11-25 14:00:00 · 1855 阅读 · 1 评论