- 博客(27)
- 收藏
- 关注
原创 AndEngine之DEMO学习(十五)MultiTouchExample
接下来的一个例子MultiTouchExample,多个实体拖拽的实现。这个例子中采用了通常意义上的拖拽三个阶段的定义:物体被拽起、物体被拖动、物体被放下。另一方面在多实体响应事件中,当一个实体被拖起,那其他实体应该不会再响应ActionDown(否则会有很多实体被拖起),这样这屏幕点击事件中有一个setTouchAreaBindingOnActionDownEnabled的设置,完成这个需要。
2012-06-06 17:18:36
1720
1
原创 AndEngine之DEMO学习(十四)TouchDragExample
一路坑坑洼洼的过来,总算到了Touch部分DEMO,这些例子都是通过Android的单点触控和多点触控实现的,包括缩放、拖拽、滚动等各类实现。感觉这部分是相对轻松的一块,主要目的是了解他的程序结构。先来第一个例子,拖拽的示例。 这个例子中只是让精灵的坐标设置触控的坐标,完成精灵随手指触控移动的效果,但是还是会有一定的延时感。下面上代码:package org.andengine
2012-06-06 16:06:12
1395
1
原创 AndEngine之DEMO学习(十三)Rotation3DExample
这是动画与修改器的最后一个例子,实现一个旋转的3D效果。如果只以学习引擎来看,这个只是一个RotationModifier修改器的使用DEMO;如果要弄懂他是如何运作的,就变成一个3D图形问题了。 先说一下裁剪平面(ClippingPlan)的概念,这是根据“视口”定义的一块梯形空间,在这个空间中的图形将会按照透视关系被渲染,区域以外的部分会被裁剪掉,所以得名裁剪平面。这里
2012-06-06 15:09:51
1833
原创 AndEngine之DEMO学习(十二)EaseFunctionExample
在EntityModifier部分已经提到过他,IEaseFunction是定义修改器数值随时间变化的计算函数。例子中使用了多个EaseFunction,并使用一个MoveModifier展示他们的不同。就本身来说这个例子没有什么可说的了,但是在其中有两个新的概率,一个是字体和文字;一个是摄像机的HUD(heads-up display)。下面做个说明吧。 Text是一种矩形形状,有
2012-05-31 10:52:33
2281
原创 AndEngine之DEMO学习(十一)AnimatedSpritesExample
又是一个参数说明的例子,AnimatedSprite已经在前面多次出现,在上一节中我也说明了原理,这Demo就看着对具体细节的学习吧。 首先TiledSprite需要的ITextureRegion为ITiledTextureRegion,区别在于ITiledTextureRegion中包含了多个ITextureRegion,根据索引就可以完成显示范围的切换了。当定义纹理范围时,确认了
2012-05-30 11:06:15
3111
原创 AndEngine之DEMO学习(十)PathModifierExample
这是一个路径修改器配合动画精灵的例子,我准备分两块来说明,一个是路径修改器的构成;一个是动画精灵的构成。最后达到的效果是一个小人在屏幕四周循环跑动。 路径修改器中定义内部类Path,用于记录路径上的各个点坐标,PathModifier根据坐标生成MoveModifier,完成每两点的移动,一系列的MoveModifier放入一个顺序容器就完成了物体的移动。这种移动是没有与动画集成的,
2012-05-29 16:47:01
1640
1
原创 AndEngine之DEMO学习(九)CardinalSplineMoveModifierExample
这个例子又新介绍了一种修改器的实现,CardinalSplineMoveModifier(基数样条移动修改器)。demo的效果是依靠矩形的运动创造出一个心形,当然心形是一个不规则的形状,这里就得使用基数样条的概念。盗用百科: 基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。样条由一系列点指定,并通过每一个指定的点。由于基数样条平滑地穿过组中的每一个点(不出现尖角),因而它
2012-05-29 11:16:55
1665
原创 AndEngine之DEMO学习(八)EntityModifierIrregularExample
这个例子真是已经没有什么好说的了,无非是继承于EntityModifier的一个实现而且,他的名字也说的很清楚,不规则的运动改变器。我们记住一些参数就完全能解决问题,比如X向、Y向的拉升,我就直接上代码加注释完事了,很轻松的例子:package org.andengine.examples;import org.andengine.engine.camera.Camera;import
2012-05-28 17:27:14
1537
原创 AndEngine之DEMO学习(七)EntityModifierExample
接着上篇的内容,这个上个例子说的是使用IUpdateHandler进行业务更新,这回的例子是一EntityModifier的方式对业务进行更新。Modifier我们可以分成两种不同类型,一种可以叫做延时类Modifier,主要处理在一定时间段内的实体变化;一直可以叫做容器类Modifier,主要用来组合多个延时类Modifier,并按次序执行他们。容器类Modifier只有实现了三个子类,分别是循
2012-05-25 17:23:06
2015
原创 AndEngine之DEMO学习(六)MovingBallExample
上例子之前先罗嗦两句,AndEngine是通过业务线程处理各种变化的,可能包含计算、存储、交互等等,当然最重要的还是改变实体的状态,在渲染的时候会看到实质的改变。举个例子,在业务线程中将TileSprite的显示瓦片顺序的改变,渲染线程显示出来便成为了动画。当然这种改变是需要我们控制的,实体通过注册IUpdateHandler,或者注册IModifier,这两种方式将我们的业务注册到业务线程。下面
2012-05-24 17:26:51
1730
原创 AndEngine之DEMO学习(五)SpriteBatchExample
一如既往,先上代码再说事。package org.andengine.examples;import org.andengine.engine.camera.Camera;import org.andengine.engine.options.EngineOptions;import org.andengine.engine.options.ScreenOrientation;
2012-05-24 10:51:53
1527
原创 AndEngine之DEMO学习(零)AndEngine结构
andEngine结构:双线程:业务线程、渲染线程,使用ReentrantLock实现两个线程的交替执行。渲染线程:使用GLSurfaceView提供的渲染功能,内置渲染绘图线程。第一步:RenderSurfaceView为继承于GLSurfaceView的GL渲染视图,BaseGameActivity作为继承于Activity的活动,通过setContentView(RenderSu
2012-05-07 16:08:32
3269
原创 AndEngine之DEMO学习(四)SpriteRemoveExample
package org.andengine.examples;import org.andengine.engine.Engine.EngineLock;import org.andengine.engine.camera.Camera;import org.andengine.engine.options.EngineOptions;import org.andengine.engin
2012-05-06 22:19:49
1718
原创 AndEngine之DEMO学习(三)SpriteExample
package org.andengine.examples;import java.io.IOException;import java.io.InputStream;import org.andengine.engine.camera.Camera;import org.andengine.engine.options.EngineOptions;import org.anden
2012-05-06 20:59:24
2255
原创 AndEngine之DEMO学习(二)RectangleExample
package org.andengine.examples;import org.andengine.engine.camera.Camera;import org.andengine.engine.options.EngineOptions;import org.andengine.engine.options.ScreenOrientation;import org.andengi
2012-05-06 01:05:40
2746
2
转载 OpenGL颜色混合——glBlendFunc()
混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenG
2012-05-05 19:13:01
1744
原创 AndEngine之DEMO学习(一)LineExample
public class LineExample extends SimpleBaseGameActivity { /* Initializing the Random generator produces a comparable result over different versions. */ private static final long RANDOM_SEED = 12345
2012-05-04 23:05:49
2894
4
转载 ReentrantLock和内部锁的性能对比
ReentrantLock是jdk5引入的新的锁机制,它与内部锁(synchronize) 相同的并发性和内存语义,比如可重入加锁语义。在中等或者更高负荷下,ReentrantLock有更好的性能,并且拥有可轮询和可定时的请求锁等高级功能。这个程序简单对比了ReentrantLock公平锁、ReentrantLock非公平锁以及内部锁的性能,从结果上看,非公平的ReentrantLock表现最好。
2012-05-04 11:37:07
951
转载 ReentrantLock
ReentrantLock是一个互斥的同步器,其实现了接口Lock,里面的功能函数主要有:1. lock() -- 阻塞模式获取资源2. lockInterruptibly() -- 可中断模式获取资源3. tryLock() -- 尝试获取资源4. tryLock(time) -- 在
2012-05-04 11:27:20
1833
转载 OpenGL ES 绘图基础
OpenGL ES 支持绘制的基本几何图形分为三类:点,线段,三角形。也就是说OpenGL ES 只能绘制这三种基本几何图形。任何复杂的2D或是3D图形都是通过这三种几何图形构造而成的。比如下图复杂的3D图形,都有将其分割成细小的三角形面而构成的。然后通过上色(Color),添加材质(Texture),再添加光照(lighting),构造3D效果的图形: 点, 线段,三角形都是通过顶点
2012-05-03 10:49:52
2875
转载 Android OpenGL 简介
1、什么是 OpenGL? OpenGL 是个专业的3D程序接口,是一个功能强大,调用方便的底层3D图形库。OpenGL 的前身是 SGI 公司为其图形工作站开的 IRIS GL。IRIS GL 是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是 SGI 公司便在 IRIS GL 的基础上开发 OpenGL 。具体详细的介绍请。2、OpenGL 的发展历程 19
2012-05-03 10:19:14
781
原创 Lgame之RPG之角色
游戏地图过后就是那些在地图上游动的角色了, 当然包括游戏主角、npc、怪物等等了。我觉得这是一个很有趣的东西,这些东西构成了游戏的世界。 Lgame中将所有这些角色使用叫RPGActors的管理器进行管理,其中包含了一个游戏角色的列表,通过自增长的Index进行索引;并将游戏角色分成组group和队伍team的结合;还提供了draw方法绘制出所有角色。于是我们改变角色的位置、状态角色就
2012-04-30 13:48:12
857
转载 SurfaceVie
android中的surfaceview执行的效率比较高,它可以直接访问一个画布,应用程序通过它直接绘制像素。android图形界面中有一个比较重要的概念是surface,何谓surface?简单的讲,surface相当于画板,所有的图像(view及其子类)都是要花在surface上的。每个surface会创建一个Canvas对象(其属性是会时常变的)--一个用来管理view在surface上绘图
2012-04-30 13:16:56
1065
转载 GLSurfaceView
GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。 GLSurfaceView提供了下列特性: 1> 管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。 2> 管理一个EGL display,它能让openg
2012-04-30 13:13:47
12176
原创 Lgame之RPG之地图1
好了,现在马上解决RPG中的第一个问题:地图。这个破烂东西纠结了我很长的时间,因为我一直都想拥有一个地图编辑器,这样游戏可以手动或者自动的定制出来,拯救我这种美工白痴。 仔细看了下SRPG的地图实现,分为底图和活动域两块。底图就是将一幅图片作为地图背景;活动域将底图按照切分成正方形瓦片后,定义每个瓦片上角色是否能活动的一个二维数组。角色在活动域中游走,相应的计算背景地图的移动,这样
2012-04-30 13:10:35
1436
原创 Lgame之RPG
由于本人比较喜好RPG类型,首先研究的就是Lgame的RPG实现方式。在最新的0.3.2版本中包含了SRPG的实现,也就是传统意义上的战棋类游戏实现,虽然只是RPG类型中的一个分支,但是也相当说明问题的了。接上回分解,自定义渲染必然包含在SRPGScreen中。按照SRPGScreen中的结构可以把整个SRPG分为如下元素: 1.游戏地图,以及与之配合的行动域。
2012-04-30 13:09:22
1057
原创 初探Lgame
最近在研究引擎,发现Lgame实现了很多种类型游戏,决定对他的代码进行研究和整理。以前基于android的开发都是通过API提供的组件完成的,对于绘图方面是一片空白,只能一步一步补充相关知识来理解这个引擎实现的原理,如果有这方面爱好的同仁欢迎通过博客一起学习和提高。 大体看了一下Lgame的程序结构,整个程序由于未用接口方式实现代理模式,理解起来比较纠结。其实他使用了android
2012-04-30 13:07:50
1493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人