基于android系统的手机游戏的开发

2024-05-17 10:53

1. 基于android系统的手机游戏的开发

  如果你有兴趣为Android平台开发游戏,有很多你需要了解的东西。如果你有过游戏开发经验,那么转移到移动平台上来将不是特别困难。你主要只需学习其架构以及API就行了。如果你是一名游戏开发新手,我总结了一张列表,上面有你必需知道的东西,供你起步用。这些知识适用于很多类型的游戏,包括动作类、策略类、模拟类和益智类。  Android是一个基于Java的环境。这对初学者来说是个好消息,因为相对于C++,Java被广泛认为是一门更容易上手的语言,它是移动开发的规范。Google也做了一件出色的工作,它将API文档化并提供示例代码供使用。其中有个叫做API Demos的示例几乎展示了所有API的功能。如果你熟悉Java并且用过Eclipse,要让你的第一个应用跑起来那是相当简单。如果你以前从没写过代码,在你前进路上还要学习很多,但别气馁。
  获取SDK
  新手上路的第一步便是获取Android SDK(软件开发工具包)。SDK里有一个核心类库,一个模拟器,一些工具和示例代码。我强烈建议使用Eclipse和Android Eclipse插件。如果你玩Android的话,Eclipse IDE对Java开发者来说很好用。如果这是你第一次开发Java项目,你可能会需要下载全套JDK,它里面包括签名和部署你的应用程序的一些工具。
  学习应用程序架构
  别急着一头扎进开发的海洋里,理解Android应用程序架构是很重要的。如果你不学一下,你设计出来的游戏在线下将很难调试。你将需要理解Applications、Activities、Intents以及它们怎样相互联系。Google提供了很多有用的架构信息。真正重要的是要理解为什么你的游戏需要多于一个的Activity,以及什么才是设计一个有良好用户体验的游戏。要理解这些,首先要了解什么是Activity生命周期。
  学习Activity生命周期
  Activity生命周期由Android操作系统来管理。你的activity创建、恢复、暂停、销毁都受操作系统的支配。正确处理这些事件是很重要的,这样应用程序才能表现良好,做用户认为正确的事。在你设计你的游戏之前了解所有这些是如何工作的是件好事,因为以后你可以为自己节省调试时间和昂贵的重新设计时间。对大多数应用来说,默认的设置将工作正常,但对于游戏,你可能需要考虑将SingleInstance标志打开。当设置为默认时,Android在它认为合适时会创建activity的新实例。对于游戏来说,你可能只需要一个游戏activity的实例。这对于你要怎样管理事务的状态有些影响,但对于我来说,这解决了一些资源管理的问题,应予以考虑。
  主循环
  根据你写的游戏的类型,你可能需要也可能不需要一个主循环。如果你的游戏不依赖于时间或者它仅仅对用户所做的加以回应,并且不做任何视觉上的改变,永远等待着用户的输入,那么你就不需要主循环。如果你写的是动作类游戏或者带有动画、定时器或任何自动操作的游戏,你应该认真考虑下使用主循环。
  游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行。你的主循环需要在它自己的线程里运行,原因是Android有一个主用户界面线程,如果你不运行自己的线程,用户界面线程将会被你的游戏所阻塞,这会导致Android操作系统无法正常的更新任务。执行的顺序通常如下:状态,输入,人工智能,物理,动画,声音,录像。
  更新状态意思是管理状态转换,例如游戏的结束、人物的选择或下一个级别。很多时候你需要在某个状态上等上几秒钟,而状态管理应该处理这种延迟,并且在时间过了之后设置成下一个状态。
  输入是指用户按下的任何键、对于滚动条的移动或者用户的触摸。在处理物理之前处理这些是很重要的,因为很多时候输入会影响到物理层,因而首先处理输入将会使游戏的反应更加良好。在Android里,输入事件从主用户界面线程而来,因此你必须写代码将输入放入缓冲区,这样你的主循环可以在需要的时刻就从缓冲区里取到它。这并非难事。首先为下一个用户输入定义一个域,然后将onKeyPressed或onTouchEvent函数设为接到一个用户动作就放到那个域里,有这两步就够了。如果对于给定游戏的状态,这是一个合法的输入操作,那么所有输入需要在那一刻做的更新操作都已经定下来了,剩下来就让物理去关心怎样响应输入吧。
  人工智能所做的类似于用户在决定下一个要“按”哪个按钮。学习怎样写人工智能程序超出了这篇文章的范围,但大体的意思是人工智能会按照用户的意图来按按钮。这些也有待物理去处理和响应吧。
  物理可能是也可能不是真正的物理。对于动作类游戏来说,关键点是要考虑到上一次更新的时间、正在更新的当前时间、用户输入以及人工智能,并且决定它们朝着什么方向发展和是否会发生冲突。对于一个你可视化地抓取一些部件并滑动它们的游戏来说,物理就是这个游戏中滑动部件或者使之放入合适的位置的部分。对于一个小游戏来说,物理即使这个游戏中决定答案是错还是对的部分。你可能将其命名为其他东西,但每个游戏都有一个作为游戏引擎的红肉部分(译者注:可能是主体部分的意思),在这篇文章里,我把这部分称为物理。
  动画并非像在游戏里放入会动的gif图片那样简单。你需要使得游戏能在恰当的时间画出每一帧。这并没有听起来那么困难。保留一些像isDancing、danceFrame和lastDanceFrameTime那样的状态域,那样动画更新便能决定是否可以切换到下一帧去了。动画更新真正做的事就那么多。真正来显示动画的变化是由录像更新来处理的。
  声音更新要处理触发声音、停止声音、音量变化以及音调变化。正常情况下当写游戏的时候,声音更新会产生一些传往声音缓冲区的字节流,但是Android能够管理自己的声音,因而你的选择将是使用SoundPool或者MediaPlayer。它们都需要小心处理以免出错,但你要知道,因为一些底层实现细节,小型、低比特率的声音文件将带来最佳的性能和稳定性。
  录像更新要考虑游戏的状态、角色的位置、分数、状态等等,并将一切画到屏幕上。如果使用主循环,你可能需要使用SurfaceView,并做一个“推”绘制。对于其他视图,视图本身能够调用绘制操作,主循环不必处理。SurfaceView每秒产生的帧数最多,最适合于一些有动画或屏幕上有运动部件的游戏。录像更新所要做的工作是获取游戏的状态,并及时地为这个状态绘制图像。其他的自动化操作最好由不同的更新任务来处理。
  代码看起来是什么样的?这儿有个例子。
  1: public void run() {
  2:     while (isRunning) {
  3:         while (isPaused && isRunning) {
  4:             sleep(100);
  5:         }
  6:         update();
  7:     }
  8: }
  9:
  10: private void update() {
  11:     updateState();
  12:     updateInput();
  13:     updateAI();
  14:     updatePhysics();
  15:     updateAnimations();
  16:     updateSound();
  17:     updateVideo();
  18: }


  3D还是2D?
  在开始写游戏之前,你要决定是做3D的还是2D的。2D游戏有一个低得多的学习曲线,一般更容易获得良好的性能。3D游戏需要更深入的数学技能,并且如果你不在意的话会有性能问题产生。如果你打算画比方框和圆圈更复杂的图形,还需要会使用3D Studio和Maya那样的建模工具。Android支持OpenGL用来3D编程,并且在OpenGL方面有很多很好的教程可供学习。
  建立简单、高质量的方法
  上手时,要确保你整个游戏不要就用一个庞大而冗长的方法。如果你遵循我上面描述的主循环模式,这将相当简单。每个你写的方法应当完成一个非常特定的任务,并且它就应该无差错地那样做。举例来说,如果你需要洗一副纸牌,你应该写一个“shuffleCards”的方法,并且该方法就应该只做这一件事。
  这是一个适用于任何软件开发的编码实践,但对于游戏开发来说这尤为重要。在一个有状态的、实时的系统里,调试将变得非常困难。使你的方法尽量的小,一般的经验法则是每个方法有且仅有一个目的(译者注:完成且仅完成一个功能)。如果你要为一个场景用编程方式画一个背景,你可能需要一个叫做“drawBackground”的方法。诸如此类的任务能够很快完成,因而你可以按照搭积木的方法来开发你的游戏,而你能够继续添加你要的功能,并且不会使得这一切难以理解。
  最重要的是效率!
  性能是任何游戏的主要问题。我们的目标是使得游戏的反应越快越好,看起来越流畅越好。某些方法如Canvas.drawLine比较慢。并且要将屏幕大小的位图画到主画布上,每一帧都是代价昂贵的。如何权衡对于达到最佳性能很有必要。确保管理好你的资源,使用技巧来以最少量的CPU资源完成你的任务。如果性能不好的话,即使是最好的游戏玩起来也没劲。人们一般对于游戏卡或者响应慢几乎难以容忍。
  提示和技巧
  看一下SDK中的示例LunarLander。它使用SurfaceView,这对于一个每秒需要处理最多帧的游戏来说是合适的。如果你要做3D,示例中有GLView可以处理3D显示的很多初始化工作。对LightRacer来说,我不得不优化把所有东西都画出来这种方法,否则帧率将会大大地降低。我只在视图初始化的时候把背景画进一个位图里一次。路径放在它们自己的位图里,随着车手的前进而更新。这两个位图在每一帧里都被画进主画布中去,车手画在顶端,到最后会有一个爆炸。这种技术使得游戏运行在一个可以玩的程度。
  如果适用的话,使得你的位图的大小精确等于你打算画到屏幕上的大小,这也是个好的实践。这么做了以后就需要缩放,可以节省CPU资源。
  在游戏中始终一致的位图配置(如RGBA8888)。这将会通过减少不同格式之间转换的时间来节省图形库的CPU时间。
  如果你决定开发3D游戏但没有3D方面的知识,你需要挑选一两本3D游戏编程方面的书并学习线性代数。你最少要理解点积、叉积、向量、单元向量、法线、矩阵和变换。这方面我遇到的最好的书是叫《3D游戏编程和计算机图形学数学》。
  声音文件要小而且低比特率。需要加载的越少,加载速度越快,游戏所需内存越少。
  声音使用OGG文件,图片使用PNG文件。
  确保释放所有媒体播放器,当Activity销毁时空出所有的资源。这能保证垃圾收集器清除了所有东西,也能保证在两次游戏开始之间没有内存泄露。
  加入Android谷歌小组,寻求社区支持。这里有人可以在开发过程中给你帮助。
  最重要的是,花时间测试再测试,确保每一小部分都如你所愿地工作。改善游戏是整个开发中最耗时最困难的部分。如果你匆匆将其推向市场,你很可能会使用户们失望,你会感到你的努力都白费了。你不可能使所有人都喜欢你写的东西,但你至少要尽量发布你最高质量的作品。
  Google在这里有帮助你上手的绝佳的文档。
  电驴上也有很多不错的书籍和视频教程~希望对你有帮助

基于android系统的手机游戏的开发

2. android手机下载游戏不能安装说内存不足

你是在安装的时候提示安装不了嘛?
如果是的话,那有可能是你的应用程序没有安装在SD卡中,也有可能是你手机自带内存太小了,虽然应用程序可以安装在SD卡里,但还是会有小部分留在手机内存的
首先,打开设置->应用程序->SD卡中,你看看是不是应用程序都安装在SD卡中,如果没有的话,你点进去,大部分应用程序都是可以移至SD卡的
其次,打开设置->关于手机,看看你手机的内存信息,看看可用/总共内存有多少,很有可能手机自带内存过小或者应用程序安装过多,导致可用内存过少
如果你可用内存过少的话,你可以选择卸载一些不需要的应用程序,或者刷机,选择一款占用内存较小的ROM
有问题可以再问,望采纳...

3. 如何在安卓手机上玩苹果手机的游戏?

在手机中下载一个应用宝,在应用宝中的游戏多一些,即使是苹果中的游戏,很多也是可以玩安卓的版本的在里面。
拓展延伸:
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。[1]2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
2014第一季度Android平台已占所有移动广告流量来源的42.8%,首度超越iOS。但运营收入不及iOS。

如何在安卓手机上玩苹果手机的游戏?

4. 安卓手机下大型游戏用什么软件好

楼主你好
我觉得是应用宝,因为应用宝上面的软件游戏资源特别大,很多游戏都是有的,而且还有游戏首发,可以提前玩好玩的游戏,多厉害呀。我就一直盯着这个功能,玩到不少好玩的游戏。而且用了真么长时间了,还没有一次出现过插件或者病毒的。推荐楼主尝试下一。

5. 为什么我用应用宝下载游戏就出现 android.play安装文件,然后在游戏中出现大量的广告 !

手机的系统出现问题了。
可以用上软件直接对手机刷机呢。
这样就能稳定的保证手机运行了。
PC版应用宝下载到电脑上。
打开软件就能直接操作了,从而手机就能正常运行了。

为什么我用应用宝下载游戏就出现 android.play安装文件,然后在游戏中出现大量的广告 !

6. 我在百分网上下载了一个游戏 在U盘里 连上手机后 解压压缩包后 有一个android文件夹 和一个

你好安卓应用为.APK格式。然而有些大型游戏由于自带大量文件信息,为了避免占用过多内存,将应用分为XXX.APK+数据包的样式。.APK文件被称为主程序,而剩下的文件是数据包。将数据包完整存放在指定路径后游戏才能正常运行。

注意事项:
1.很重要的一点:将数据包复制进sd卡,不要选择剪切。有时复制的时候,可能数据会有丢失,重新复制几次试试。一般从网站上下载的数据包多为压缩包,要先将文件解压到电脑再进行传输。不要直接解压到sd卡。
2.建议游戏数据包使用数据线进行传输。因为读卡器读取数据较慢,而游戏包里边的文件很多,容易造成丢失。数据包文件丢失的可能性比较大,建议多尝试几次。
3.确认手机sd卡有足够的存储空间。数据包大多比较占空间。
4.确认你下载的数据包支持你手机的cpu。市场上安卓手机多为高通,其次是德州仪器、Tegra等。不了解自己手机cpu型号的请百度之。
5.部分玩家刷了第三方的精简包,google服务框架被删除,或是未安装电子市场。玩一些游戏会出现不兼容、黑屏等现象。补刷服务框架、安装电子市场即可,或是要求背景数据同步。
数据包存储路径:
大型游戏中,不同的数据包存放路径不同。以gameloft制作的游戏居多,另外还有EA和GLU等知名厂商。
1.Gameloft数据包路径:sdcard/gameloft/games/XXX
2.EA数据包路径:sdcard/ Android/data/XXX
3.GLU数据包路径:sdcard/glu/XXX
4.其它常见数据包路径:sdcard/data/data/XXX
数据包直接解压到android文件夹就可以将手机原有的文件夹覆盖
Wifi验证:
不少数据包游戏都需要开wifi验证。wifi验证一般都很快。有时你已经存放了数据包但是wifi验证会提示你要下载数据包。很可能是数据包在传输的过程中数据有丢失,请重新解压数据包再传输。网络允许的情况下也可以直接下载。
如果你所在区域没有wifi那么按下面的方法验证(针对gameloft游戏):
1.新建一个名为qaWifiOnlyMode的txt文本文件(区分大小写),打开,输入FALSE,保存,退出,并复制到SD卡根目录;
2.打开手机移动网络,将接入点设置为CMNET,再进行验证。

7. 我写了一个android的小游戏,在模拟器上能运行,但是换手机怎么都不能运行

可能是兼容性问题  不支持你的安卓版本  模拟器的兼容性很强

我写了一个android的小游戏,在模拟器上能运行,但是换手机怎么都不能运行

8. 下载游戏以后怎么把游戏程序安装到蓝魔W10上?我安装到硬盘以后却打不开不能玩。

好不好怎么说呢,看你需要什么?
没有重力感应!
这是官方的参数,
自己看看对比下,我推荐你选台电的。 

台电C430PE全智能播放器! 全球首款支持1080P全高清视频直播的Android(2.3)智能设备!台电C430PE独有双系统切换特性,可自由在Android 2.3与高清MP4的mini OS系统之间切换,让你在拥有 Android 2.3智能系统数以万计的游戏与应用的同时,能流畅欣赏1080P全高清视频!解决了之前智能MP4高清视频播放能力差的缺憾,而价格仅仅与一台普通MP4相当。


·全球首款采用Android 2.3系统的智能MP4
目前市面上的智能MP4仅支持2.1版本Android操作系统,而台电C430PE则全球率先采用2.3版本(代号:姜饼) Android的操作系统,具有下列新特性: ·6倍系统性能提升,运行程序速度更快 ·直接在外接存储卡上安装程序,不用再考虑主机空间大小·支持语音搜索 ·智能应用程序管理,不用安装第三方应用程序管理软件·优化电源管理,电池续航能力增强·支持复制粘贴功能

·全球首款支持1080P全高清的Android手持设备
目前市场上的智能MP4仅部分支持720P的高清视频播放,支持码率低,很多高清电影无法播放。而台电C430PE切换到mini OS系统下,可完美支持1080P全高清、全格式视频直播,支持码流超过100M!通吃目前网上所有能下载的视频,彻底解决Android 智能MP4高清视频播放能力差的现状

·创新Android/Mini OS双系统自由切换
台电C430PE创新支持双系统!就像电脑上的多系统引导一样,台电C430PE支持双系统启动,你可以选择进入Android 2.3智能系统还是mini OS高清MP4系统,进入Android系统有海量软件支持、可玩性高,进入mini OS系统则启动迅速,可以看1080p全高清视频,一机两用,即是全高清MP4,又是智能平板,你真的赚到了!

·强大的电子书阅读功能
台电C430PE的Mini OS系统支持强大的电子书阅读功能,并且Android有大量的读书软件供你选择,无论是pdf还是chm,还是最基本的TXT,你都能找到一款适合自己的读书软件

·海量游戏任你玩
台电C430PE支持大量的Android游戏!你可以直接通过电脑为C430PE安装,僵尸大战、塔防、棋牌、体育、赛车、智力、恶搞,你想到的想不到的游戏都有!只要你有一部台电C430PE,就能立即有海量Android游戏任你玩

·闹钟、日程安排、口袋办公管理都没问题
台电C430PE内置强大的闹钟和日程安排功能,你还可以安装其他的办公与管理软件,或者个人管理软件,从而每天都能帮助你进行管理和生活学习

·淘汰其它MP4
目前普通智能MP4仅支持安卓2.1系统及720P高清,性能有很大缺憾! 而台电C430PE首次将高清MP4与智能播放器结合在一起,并不是简单的拼凑叠加,台电C430PE在支持全格式1080P的高清视频的基础上,首款支持安卓2.3系统的智能播放器。不仅全能,而且专业!完全可以取代传统高清MP4及智能MP4产品

·1080p高清电视输出,共享家庭影院震撼效果
台电C430PE同时支持色差/AV视频输出,可将高清视频输出至电视中观看。与家人和朋友共同分享精彩的高清影音节目

·支持USB OTG直读
台电C430PE在Mini OS系统下支持OTG技术,可通过OTG线读取U盘/移动硬盘等USB移动存储设备里的文件视频,并直接播放,大大节约了来回传输文件的时间,不仅方便了组建家庭影院,而且平时呆在住所欣赏下载的电影也会很省事

技术参数:
主控芯片:TECLAST E2100
操作系统:内置MINI OS及智能Android2.3 双系统
外形尺寸:115.8mm(L)×86.8mm(W)×13.3mm(H)
重量:133.1g
MIC录音
音乐支持格式:MP3、WMA、APE、FLAC、OGG、AAC
视频支持格式:AVI、RM、RMVB,3GP、DAT、FLV、MP4、MPG、VOB、DIVX、MKV、MOV等 最大支持1080P
显示屏类型:采用4.3英寸电阻式触摸液晶屏,点阵:480X272
菜单语言:简体中文、英语、繁体中文
支持LRC歌词显示、SRT字幕加载
录音编码:MP3编码格式
音效EQ均衡模式:自然、流行、古典、爵士、摇滚、柔和、重低音、语言、舞曲等
播放模式:单曲播放、单曲循环、全部循环、顺序播放、随机播放
显示模式:支持频谱、歌词两种
歌词颜色:支持蓝底红字、红底蓝字、黄底绿字、绿底黄字、橙底蓝字、红底黄字、蓝底绿字选择
星级设置:支持0星、1星、2星、3星、4星、5星
桌面壁纸:支持6种可选择
TV-OUT输出:支持复合信号,色差分量输出
定时关机:支持5分钟、10分钟、30分钟、1小时、一直打开
关屏时间:支持5秒、10秒、15秒、30秒、1分钟、5分钟、一直打开
按键音乐:支持开和关选择
亮度设置:支持亮度一、亮度二、亮度三、亮度四、亮度五、亮度六、亮度七几个等级
睡眠时间:支持30秒、1分钟、5分钟、10分钟、30分钟、1小时、一直打开
电池续航:音频约14小时(使用外放),视频约5小时(使用外放)
文本阅读功能:支持TXT、PDF文本
图片浏览:支持JPG、JPEG、PNG、GIF、BMP格式
OTG功能:支持(MINI OS)
扩展卡:支持8GB容量或更高的TF卡
具有管理、删除、应用程序的功能
办公软件、日程记事的功能
游戏功能
外放喇叭

附件:
说明书 一本
保修卡 一本
耳机 一条
数据线 一根
质量保证卡 一张
最新文章
热门文章
推荐阅读