http://snowman.blog.51cto.com/307956/136908
http://www.cnblogs.com/Jamesliang/archive/2009/12/20/1628150.html
http://www.android123.com.cn/android_kit.html
http://www.droidnova.com/playing-with-graphics-in-android-part-vii,220.html
android专栏地址
http://www.iteye.com/topic/1052037
android类似例子
http://www.droidnova.com/playing-with-graphics-in-android-part-vi,209.html
http://www.droidnova.com/playing-with-graphics-in-android-part-i,147.html
android sdk文档
http://www.chinaup.org/docs/intro/tutorial.html
http://android.toolib.net/
http://android.yyable.com/sdk/android-3.0.html
入门视频
http://www.iteye.com/topic/941863
[url][/url]http://www.andengine.org/forums/tutorials/andengine-core-terminology-t316.html
http://code.google.com/p/andengine/source/browse/src/org/anddev/andengine
高手博客
http://www.moandroid.com/?cat=29
http://www.hiapk.com/bbs/thread-13311-1-1.html
http://www.hiapk.com/bbs/index.php
http://www.cnblogs.com/feisky/archive/2010/01/16/1649081.html
http://blog.csdn.net/xiaominghimi/archive/2010/12/21/6089594.aspx[url][/url]
http://www.cnmsdn.com/html/201004/1271830622ID4086.html
[url]http://blog.touchlibs.com/archives/83 [/url]
http://blog.csdn.net/iamlazybone/archive/2010/11/01/5978945.aspx
http://www.starandroid.com/
http://www.android-study.com/
游戏开发引擎
http://www.189works.com/article-11429-1.html
http://www.bangchui.org/read.php?tid=4296&fpage=9
http://www.bangchui.org/read.php?tid=9289
---andengine
http://codeand.me/archives/279
http://www.andengine.org/forums/tutorials/mimminito-s-tutorial-list-t417.html
http://blog.csdn.net/cping1982/archive/2011/03/06/6227775.aspx
http://www.andengine.org/
http://wiki.andengine.org/AndEnginePhysicsBox2DExtension
http://www.andengine.org/forums/development/sprite-rotation-t280.html
andengine源代码
http://code.google.com/p/andengine/source/browse/#hg%2Fsrc%2Forg%2Fanddev%2Fandengine%253Fstate%253Dclosed
http://hi.baidu.com/mingmingsuper/blog/item/12e9a844e679c933cefca371.html
Box2d
http://www.docin.com/p-74534367.html
http://www.doc88.com/p-18930976233.html
http://wenku.baidu.com/view/afe0fab069dc5022aaea001f.html
http://blog.csdn.net/vickylh/archive/2010/04/30/5545212.aspx
http://code.google.com/p/andenginephysicsbox2dextension/source/browse/src/org/anddev/andengine/extension/physics/box2d/PhysicsFactory.java?r=c6df2f1fe9a6edef692cdb988c852d7913ff4ac6
购买书籍
http://www.china-pub.com/196305
android概念知识
1.activety组件
http://hi.baidu.com/123330524/blog/item/43778b968ed29a6255fb96fc.html
导入android应用开发揭密的源码问题解决
android低版本工程(如1.5)放到高版本环境中(如2.2)可能会上述错误,解决方法如下:
1。 如果不修改android sdk版本,则使用project clean 命令作用于某工程即可。 (该处理方式只是在高版本中兼容了低版本工程,未真正意义上的升级)
2。 如果修改android sdk版本,则需要以下几个步骤:
1) 修改SDK
选择工程,build path --> configure build path ---> library 删除引用的低版本SDK,
然后add External JARs,选择高版本SDK,OK,保存
2) 修改classpath文件
该文件可能存在该项: <classpathentry kind="lib" path ="你所指定的高版本的地址"
把她修改成<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK" />
3) 修改AndroidManifest.xml
在AndroidManifest.xml文件中,application标签后添加<uses-sdk android:minSdkVersion="3"></uses-sdk>
4) 修改default.properties(很重要)
该文件最后一行(前面没用#的)target=android-3 该成target=android-8,保存。
再看看你的工程和新建的android 2.2的工程结构就一样了。
如果最后还是不行,那你就创建一个新工程,那个应该没有错。你照着新工程,把classpath 修改一下,应该就是把lib那行去掉。然后再修改default.properties,把target这行改成最高版本的。最后重启eclipse,工程应该还有错,然后你再用Project --> Clean --> Clean projects selected below ,清一下你的那个错误工程,然后就没事了。
activity是窗口应用,intent是用来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述
碰撞检测
一概
http://www.ppzhu.net/2010/07/21/%E6%B8%B8%E6%88%8F%E4%B8%AD%E7%9A%84%E7%A2%B0%E6%92%9E%E6%A3%80%E6%B5%8B/
根据你写的游戏的类型,你可能需要也可能不需要一个主循环。如果你的游戏不依赖于时间或者它仅仅对用户所做的加以回应,并且不做任何视觉上的改变,永远等待着用户的输入,那么你就不需要主循环。如果你写的是动作类游戏或者带有动画、定时器或任何自动操作的游戏,你应该认真考虑下使用主循环。
游戏的主循环以一个特定的顺序通常尽可能多的在每秒钟内“滴答”提醒子系统运行。你的主循环需要在它自己的线程里运行,原因是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谷歌小组,寻求社区支持。这里有人可以在开发过程中给你帮助。
最重要的是,花时间测试再测试,确保每一小部分都如你所愿地工作。改善游戏是整个开发中最耗时最困难的部分。如果你匆匆将其推向市场,你很可能会使用户们失望,你会感到你的努力都白费了。你不可能使所有人都喜欢你写的东西,但你至少要尽量发布你最高质量的作品。
3-7
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=13719&page=1&extra
http://www.koonsolo.com/news/dewitters-gameloop/
3-30
http://wiki.andengine.org/AndEnginePhysicsBox2DExtension
http://www.andengine.org/forums/tutorials/andengine-core-terminology-t316.html
- 大小: 214.6 KB
分享到:
相关推荐
网狐棋牌荣耀版开发环境配置 本文主要介绍网狐棋牌荣耀版开发环境配置的详细步骤和要求,旨在帮助开发者快速搭建开发环境以进行游戏开发。 开发环境配置 网狐棋牌荣耀版开发环境配置主要分为两个部分:Windows 和...
本篇我们将深入探讨Spring Boot如何实现多环境配置,以便在不同的开发、测试、生产环境中灵活切换。 在Spring Boot中,我们通常会为不同的运行环境(如开发环境、测试环境、生产环境)创建不同的配置文件。在提供的...
Delphi 10 Android 开发环境配置 Delphi 10 Android 开发环境配置是指在 Delphi 10 环境下进行 Android 应用程序开发所需要的配置步骤。以下是 Delphi 10 Android 开发环境配置的详细介绍: 一、配置环境变量 在 ...
最后,`GDAL_CSharp环境配置.docx`文档可能包含更详细的配置指南和注意事项,建议仔细阅读以获取完整的信息。在开发过程中,如果遇到其他问题,GDAL的官方文档和社区论坛都是宝贵的资源。 总的来说,配置GDAL C#...
标题"PB12.5运行环境配置dll"涉及到的是在不安装完整PB开发环境的计算机上运行PB12.5编译的程序所需的重要步骤。描述中提到,当程序被移植到没有安装PB的电脑上时,可能由于缺少依赖的动态链接库(DLL)文件而导致...
Java 环境配置及验证方法 Java 是一种广泛应用的编程语言,用于开发跨平台的应用程序。为确保 Java 开发环境的正确配置,需要进行相应的设置和验证。本文将详细介绍 Java 环境配置的步骤和验证方法。 一、下载和...
Android 开发环境配置图文教程 本资源为 Android 开发环境配置图文教程,旨在帮助 App 开发初学者快速配置 Android 开发环境。配置过程分为三个步骤:下载所需软件、安装软件和配置 Eclipse。 一、下载所需软件 ...
Eclipse开发环境配置-indigo Eclipse是一个功能强大且广泛应用的集成开发环境(IDE), indigo是Eclipse的版本之一。为了使用Eclipse进行开发,需要配置Java环境、Web容器和Eclipse插件。 一、Java环境配置 Java...
《Longan Linux SDK开发环境配置手册》是针对珠海全志科技股份有限公司T113芯片的一份详细指南,旨在帮助开发者建立有效的Linux开发环境,以便进行高效的应用程序开发和系统定制。本文将深入解析手册中的关键内容,...
Python 安装及环境配置 Python 是一种流行的高级编程语言,它广泛应用于数据分析、人工智能、Web 开发等领域。为了使用 Python,需要首先安装 Python 和配置环境。在本文中,我们将详细介绍 Python 的安装和环境...
windows下的lex和yacc开发环境配置
2、资源包含JDK11安装于环境配置的教程,超详细,值得收藏哦。 3、欢迎下载使用,jdk。 这里说明,这是一个jdk安装包哦。JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK11、JDK...
java环境配置小工具,方便简单一键配置java环境
Mamba环境配置-(Ubuntu)
Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的
J2EE环境配置 Weblogic+MySQl+JBuider2006环境配置具体步骤!
Eclipse开发环境配置 本文将详细讲解Eclipse开发环境的配置过程,包括Java环境安装、Web容器安装和Eclipse环境安装三个部分。通过本文的学习,您将掌握Eclipse开发环境的配置技术,能够独立地安装和配置Eclipse开发...
项目环境配置手册关于oracle在项目中的开发配置工具
Node.js安装及环境配置详细教程_nodejs安装及环境配置-CSDN博客.mhtml