自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 AndEngine之DEMO学习(十五)MultiTouchExample

接下来的一个例子MultiTouchExample,多个实体拖拽的实现。这个例子中采用了通常意义上的拖拽三个阶段的定义:物体被拽起、物体被拖动、物体被放下。另一方面在多实体响应事件中,当一个实体被拖起,那其他实体应该不会再响应ActionDown(否则会有很多实体被拖起),这样这屏幕点击事件中有一个setTouchAreaBindingOnActionDownEnabled的设置,完成这个需要。

2012-06-06 17:18:36 1686 1

原创 AndEngine之DEMO学习(十四)TouchDragExample

一路坑坑洼洼的过来,总算到了Touch部分DEMO,这些例子都是通过Android的单点触控和多点触控实现的,包括缩放、拖拽、滚动等各类实现。感觉这部分是相对轻松的一块,主要目的是了解他的程序结构。先来第一个例子,拖拽的示例。     这个例子中只是让精灵的坐标设置触控的坐标,完成精灵随手指触控移动的效果,但是还是会有一定的延时感。下面上代码:package org.andengine

2012-06-06 16:06:12 1364 1

原创 AndEngine之DEMO学习(十三)Rotation3DExample

这是动画与修改器的最后一个例子,实现一个旋转的3D效果。如果只以学习引擎来看,这个只是一个RotationModifier修改器的使用DEMO;如果要弄懂他是如何运作的,就变成一个3D图形问题了。           先说一下裁剪平面(ClippingPlan)的概念,这是根据“视口”定义的一块梯形空间,在这个空间中的图形将会按照透视关系被渲染,区域以外的部分会被裁剪掉,所以得名裁剪平面。这里

2012-06-06 15:09:51 1800

原创 AndEngine之DEMO学习(十二)EaseFunctionExample

在EntityModifier部分已经提到过他,IEaseFunction是定义修改器数值随时间变化的计算函数。例子中使用了多个EaseFunction,并使用一个MoveModifier展示他们的不同。就本身来说这个例子没有什么可说的了,但是在其中有两个新的概率,一个是字体和文字;一个是摄像机的HUD(heads-up display)。下面做个说明吧。      Text是一种矩形形状,有

2012-05-31 10:52:33 2221 1

原创 AndEngine之DEMO学习(十一)AnimatedSpritesExample

又是一个参数说明的例子,AnimatedSprite已经在前面多次出现,在上一节中我也说明了原理,这Demo就看着对具体细节的学习吧。      首先TiledSprite需要的ITextureRegion为ITiledTextureRegion,区别在于ITiledTextureRegion中包含了多个ITextureRegion,根据索引就可以完成显示范围的切换了。当定义纹理范围时,确认了

2012-05-30 11:06:15 3078 2

原创 AndEngine之DEMO学习(十)PathModifierExample

这是一个路径修改器配合动画精灵的例子,我准备分两块来说明,一个是路径修改器的构成;一个是动画精灵的构成。最后达到的效果是一个小人在屏幕四周循环跑动。      路径修改器中定义内部类Path,用于记录路径上的各个点坐标,PathModifier根据坐标生成MoveModifier,完成每两点的移动,一系列的MoveModifier放入一个顺序容器就完成了物体的移动。这种移动是没有与动画集成的,

2012-05-29 16:47:01 1612 1

原创 AndEngine之DEMO学习(九)CardinalSplineMoveModifierExample

这个例子又新介绍了一种修改器的实现,CardinalSplineMoveModifier(基数样条移动修改器)。demo的效果是依靠矩形的运动创造出一个心形,当然心形是一个不规则的形状,这里就得使用基数样条的概念。盗用百科:      基数样条是一组单个曲线按照一定的顺序连接而成的一条较大曲线。样条由一系列点指定,并通过每一个指定的点。由于基数样条平滑地穿过组中的每一个点(不出现尖角),因而它

2012-05-29 11:16:55 1634

原创 AndEngine之DEMO学习(八)EntityModifierIrregularExample

这个例子真是已经没有什么好说的了,无非是继承于EntityModifier的一个实现而且,他的名字也说的很清楚,不规则的运动改变器。我们记住一些参数就完全能解决问题,比如X向、Y向的拉升,我就直接上代码加注释完事了,很轻松的例子:package org.andengine.examples;import org.andengine.engine.camera.Camera;import

2012-05-28 17:27:14 1505

原创 AndEngine之DEMO学习(七)EntityModifierExample

接着上篇的内容,这个上个例子说的是使用IUpdateHandler进行业务更新,这回的例子是一EntityModifier的方式对业务进行更新。Modifier我们可以分成两种不同类型,一种可以叫做延时类Modifier,主要处理在一定时间段内的实体变化;一直可以叫做容器类Modifier,主要用来组合多个延时类Modifier,并按次序执行他们。容器类Modifier只有实现了三个子类,分别是循

2012-05-25 17:23:06 1979

原创 AndEngine之DEMO学习(六)MovingBallExample

上例子之前先罗嗦两句,AndEngine是通过业务线程处理各种变化的,可能包含计算、存储、交互等等,当然最重要的还是改变实体的状态,在渲染的时候会看到实质的改变。举个例子,在业务线程中将TileSprite的显示瓦片顺序的改变,渲染线程显示出来便成为了动画。当然这种改变是需要我们控制的,实体通过注册IUpdateHandler,或者注册IModifier,这两种方式将我们的业务注册到业务线程。下面

2012-05-24 17:26:51 1702

原创 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 1493

原创 AndEngine之DEMO学习(零)AndEngine结构

andEngine结构:双线程:业务线程、渲染线程,使用ReentrantLock实现两个线程的交替执行。渲染线程:使用GLSurfaceView提供的渲染功能,内置渲染绘图线程。第一步:RenderSurfaceView为继承于GLSurfaceView的GL渲染视图,BaseGameActivity作为继承于Activity的活动,通过setContentView(RenderSu

2012-05-07 16:08:32 3231 2

原创 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 1683

原创 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 2223 1

原创 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 2693 3

转载 OpenGL颜色混合——glBlendFunc()

混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenG

2012-05-05 19:13:01 1687

原创 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 2841 5

转载 ReentrantLock和内部锁的性能对比

ReentrantLock是jdk5引入的新的锁机制,它与内部锁(synchronize) 相同的并发性和内存语义,比如可重入加锁语义。在中等或者更高负荷下,ReentrantLock有更好的性能,并且拥有可轮询和可定时的请求锁等高级功能。这个程序简单对比了ReentrantLock公平锁、ReentrantLock非公平锁以及内部锁的性能,从结果上看,非公平的ReentrantLock表现最好。

2012-05-04 11:37:07 923

转载 ReentrantLock

ReentrantLock是一个互斥的同步器,其实现了接口Lock,里面的功能函数主要有:1. ‍lock()                      -- 阻塞模式获取资源2. ‍lockInterruptibly() -- 可中断模式获取资源3. ‍tryLock()                 -- 尝试获取资源4. tryLock(time)         -- 在

2012-05-04 11:27:20 1796

转载 OpenGL ES 绘图基础

OpenGL ES 支持绘制的基本几何图形分为三类:点,线段,三角形。也就是说OpenGL ES 只能绘制这三种基本几何图形。任何复杂的2D或是3D图形都是通过这三种几何图形构造而成的。比如下图复杂的3D图形,都有将其分割成细小的三角形面而构成的。然后通过上色(Color),添加材质(Texture),再添加光照(lighting),构造3D效果的图形: 点, 线段,三角形都是通过顶点

2012-05-03 10:49:52 2827

转载 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 739

原创 Lgame之RPG之角色

游戏地图过后就是那些在地图上游动的角色了, 当然包括游戏主角、npc、怪物等等了。我觉得这是一个很有趣的东西,这些东西构成了游戏的世界。     Lgame中将所有这些角色使用叫RPGActors的管理器进行管理,其中包含了一个游戏角色的列表,通过自增长的Index进行索引;并将游戏角色分成组group和队伍team的结合;还提供了draw方法绘制出所有角色。于是我们改变角色的位置、状态角色就

2012-04-30 13:48:12 833

转载 SurfaceVie

android中的surfaceview执行的效率比较高,它可以直接访问一个画布,应用程序通过它直接绘制像素。android图形界面中有一个比较重要的概念是surface,何谓surface?简单的讲,surface相当于画板,所有的图像(view及其子类)都是要花在surface上的。每个surface会创建一个Canvas对象(其属性是会时常变的)--一个用来管理view在surface上绘图

2012-04-30 13:16:56 997

转载 GLSurfaceView

GLSurfaceView是一个视图,继承至SurfaceView,它内嵌的surface专门负责OpenGL渲染。        GLSurfaceView提供了下列特性:            1> 管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。            2> 管理一个EGL display,它能让openg

2012-04-30 13:13:47 12074 1

原创 Lgame之RPG之地图1

好了,现在马上解决RPG中的第一个问题:地图。这个破烂东西纠结了我很长的时间,因为我一直都想拥有一个地图编辑器,这样游戏可以手动或者自动的定制出来,拯救我这种美工白痴。       仔细看了下SRPG的地图实现,分为底图和活动域两块。底图就是将一幅图片作为地图背景;活动域将底图按照切分成正方形瓦片后,定义每个瓦片上角色是否能活动的一个二维数组。角色在活动域中游走,相应的计算背景地图的移动,这样

2012-04-30 13:10:35 1388

原创 Lgame之RPG

由于本人比较喜好RPG类型,首先研究的就是Lgame的RPG实现方式。在最新的0.3.2版本中包含了SRPG的实现,也就是传统意义上的战棋类游戏实现,虽然只是RPG类型中的一个分支,但是也相当说明问题的了。接上回分解,自定义渲染必然包含在SRPGScreen中。按照SRPGScreen中的结构可以把整个SRPG分为如下元素:       1.游戏地图,以及与之配合的行动域。

2012-04-30 13:09:22 1025

原创 初探Lgame

最近在研究引擎,发现Lgame实现了很多种类型游戏,决定对他的代码进行研究和整理。以前基于android的开发都是通过API提供的组件完成的,对于绘图方面是一片空白,只能一步一步补充相关知识来理解这个引擎实现的原理,如果有这方面爱好的同仁欢迎通过博客一起学习和提高。       大体看了一下Lgame的程序结构,整个程序由于未用接口方式实现代理模式,理解起来比较纠结。其实他使用了android

2012-04-30 13:07:50 1454

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除