从零开始Android游戏编程(第二版)第十一章演员(Actor)、视口(ViewWindow),演出开始收藏第十一章演员(Actor)、视口(ViewWindow),演出开始本章内容与第七章、第八章关系非常密切,如果对这两章的内容不熟悉请大家先浏览一下七、八章,再回来看本章。Actor是一个接口,他的作用是统一类的行为(读者可以阅读一下Facede模式相关文章)。我们用一个比喻来说明:演员们有了各自的剧本,导演对所有演员说:做下一个动作!演员们就会各自行动。
第十章游戏循环的设计前面的几章中,曾多次提到游戏循环,这一章就让我们一起了解游戏循环的相关概念,学习如何使用游戏循环。我们知道,游戏的主体通常在一个循环体中,最初,我们用一个变量来表示游戏的状态,比如gameState=STATE_STARTMENU;每次循环都判断当前状态,调用不同的函数进行处理。这种方法简单有效,所有的逻辑代码都在一个类里,不必考虑隐藏和划分,只需要定义一些函数即可。但是它的优点也是它的缺点,这种结构化的方法通常让程序显得很大,有些混乱。
第十二章音乐与音效广告说的好“没有声音再好的戏也出不来”,下面就让我们为程序加入声音效果。一般情况下,游戏中的声音分为音乐和音效两个部分。直观上的区别,音乐播放的时间较长,资源文件较大。音效播放时间较短,资源文件比较小。在Android中,我们使用两种不同的方法播放音乐和音效。播放音乐需要用到MediaPlayer类,MediaPlayer本身比较复杂,这里我们只做一个简单的介绍,满足播放音乐的基本要求即可,读者可以参考帮助文档中的内容深入研究。
第三章显示文字和图片从本章开始,读者就要编写代码了。按照作者的原则——少一些理论,多一些实践,代码中可能会有跳跃的地方。但是请大家不要着急,随着学习的深入,你很快就会了解其中的奥秘。不过在开始之前,我们还是要先来理顺一下思路,看看完成一个坦克大战游戏需要哪些工作:首先,我们需要一个基本的程序,这个程序能够在Android上运行;这个程序要能够显示图形包括地图,主角和NPC等等;程序能够接受用户的输入,控制主角移动;程序要能够控制NPC和子弹的移动;程序还能对各种事件做出判断,比如击中敌人,获得物品,胜利或者失败。现在我们就从基本程序开始,一步一步实现它。
从零开始Android游戏编程(第二版)第七章精灵、帧动画与碰撞检测收藏第七章精灵、帧动画与碰撞检测经过前几章的学习,大家对使用位图、接受用户控制应该已经有了初步的概念,也可以运用这些知识完成简单的小游戏。这一章中,我们会为游戏中最重要的部分——图形处理建立一个基本的框架,这还不是游戏引擎,但是其中很多方法可以为读者以后创建自己的游戏引擎提供借鉴。这一章的涉及的内容比较多,既有2D游戏的基础理论,又有复杂的代码。尤其是代码部分,如果详细讲解,恐怕会占用很大的篇幅。所以我们只对关键的函数进行讲解,以方便读者今后灵活运用这些代码(所有的源代码都与本章节内容一同提供下载)。
从零开始Android游戏编程(第二版)第九章游戏程序的生命周期收藏第九章游戏程序的生命周期在讲解游戏程序的生命周期之前,让我们先看看普通Android应用的生命周期。关于生命周期,SDK附带的文档上有详细的解释,让我们打开文档,找到andorid.app->Activity,我们会看到这样一张图片图片将整个程序的生命周期描述的非常清楚,为了加深理解,我们创建一个程序实际看一下这个过程。创建项目LifeCycle,sdk就选择1.6吧。
第六章SurfaceView动画前面介绍的内容,还是比较简单的,应用这些知识,可以完成一些非实时游戏,比如井字棋等,或者一些画面刷新不是很频繁、实时性不强的游戏,比如我们前面做的扫雷。但是我们的目标是坦克大战,对操作的实时性要求比较高,更有很多的NPC需要处理,绘图的工作量也很大,所以我们要用一个新的视图类SurfaceView代替View来完成显示工作。
第二章创建第一个程序Hello Tank现在开始,我们要真正写作Android程序了。虽然前面安装过程那么复杂,但是写起程序来却是非常简单。而且为了让大家有一个直观的认识,本文不会叙述大段的原理,而是在编码的过程中渗透对原理、概念的讲解。
从零开始Android游戏编程(第二版)第八章地图的设计和实现收藏第八章地图的设计和实现这本来是第十章,前面计划还有两章的内容,一是跟第四章一样,完成一个Asteroid游戏作为小结,总结一下前面讲过的Sprite的用法,并演示NPC和子弹的处理方法。但是,在写第七章的最后一个例子的时候,把本来简单的碰撞检测的例子扩充了一下,加入了NPC和子弹,基本和Asteroid的功能差不多了,所以就把原定的Asteroid砍掉了。
第一章搭建开发环境工欲善其技,必先利其器。我们要做的第一件事就是搭建Android开发环境。本文只介绍Windows下的安装方法,Linux下的安装方法请参考官方网站的介绍。与PC编程略有不同的是,Android的程序需要在模拟器中运行。因此,我们需要一个集成开发环境,一个SDK和一个模拟器。
Android开发环境搭建(包含Maven和源码管理器的配置)
Android平台软体架构Linux核心:Android依赖Linux2.6来提供核心的服务,例如记忆体管理、进程(Process)管理、执行绪(Thread)管理等。 AndroidRuntime:Java语言层级的VirtualMachine。 Libraries:Android里已经提供的C/C++库存组件(或称模组)。例如,SQLite资料库系统、OpenGL3D绘图系统等。应用框架(ApplicationFramework,简称AF):这是结合Applications与Libraries的幕后主架构,让Libraries组件能不断地为Applications所重复使用(Reuse)。应用程式(Applications):依据User的期望而将AF的组件及Libaraies组件组合而成的高阶服务。
多媒体编程技术,基于OpenCore开发。本章目标多媒体格式简介Android多媒体框架概述多媒体应用接口,MediaPlayer播放器MediaRecoder录音器Camera照相机音频控制AudioManager以及铃声控制RingtoneManager多媒体类型多媒体详细框架android多媒体框架基于第三方PacketVideo公司的OpenCOREplatform来实现CODEC(编解码器)使用OpenMAX1Linterface接口进行扩展,可以方便得支持hardware/softwarecodecplug-ins(硬件/软件编解码器插件)框架调用关系图支持的格式MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF、BMPOpenCore多媒体框架有一套通用可扩展的接口针对第三方的多媒体编解码器,输入,输出设备等等。
基于android系统的音乐播放器本音乐播放器是基于android系统,采用JAVA语言编写,适合初学者学习参考实现歌曲的开始暂停停止前一首后一首功能,并能显示歌曲的作者和歌曲的相关信息
Android 反编译apk 到java源码的方法
Android 常用的系统调用
android 代码规范
他设置一个DiceRenderer渲染器实例,负责视图的渲染。这里解释一下:在Android平台中提供了一个android.opengl包,类GLSurfaceView提供了对Display(实际显示设备的抽象),Suface(存储图像的内存区域FrameBuffer的抽象),Context(存储OpenGL ES绘图的一些状态信息)的管理,大大简化了OpenGL ES的程序框架,开发OpenGL ES应用时只需为GLSurfaceView 设置渲染器实例(调用setRenderer(mRenderer))即可。关于Display,Suface,Context,附件有份AndroidOpenGL小结(不同地方拼一起的,还请原作者见谅),里面有介绍。
Android网络通信本章内容Android平台网络通信AndroidHttp通信Android Socket通信Android SSL通信蓝牙WIFI第七章Android网络通信Android网络通信Android SDK中一些与网络有关的包如下所示:包描述java.net提供与网络通信相关的类,包括流和数据包socket、Internet协议和常见HTTP处理。该包是一个多功能网络资源。有经验的Java开发人员可以立即使用这个熟悉的包创建应用程序。
Android为企业提供一个新的市场,无论大企业,小企业都是处于同一个起跑线上。研究Android尤其是Android系统核心或者是驱动的开发,首先需要做的就是本地克隆建立一套Android版本库管理机制。Android使用Git作为代码管理工具,开发了Gerrit进行代码审核以便更好的对代码进行集中式管理,还开发了Repo命令行工具,对Git部分命令封装,将百多个Git库有效的进行组织。要想克隆和管理这百多个Git库,还真不是一件简单的事情。在研究Repo的过程中,发现很多文档在GoogleGroup上,非“翻墙”不可看。非法的事情咱不干,直接阅读repo的代码吧。