首页 > 代码库 > 【v2.x OGE教程 16】 Modifier使用相关

【v2.x OGE教程 16】 Modifier使用相关


OGE引擎的修改器功能很强大,为我们提供了丰富的修改器的实现类,可以修改实体的属性,提供了移动、旋转、缩放、透明、自定义序列、同步、循环等功能,而且改变的效果可以当场生效,也可以在某一个时间段内生效并且可以提供一些缓动函数达到更加丰富的效果。

 

一、Modifier创建

使用实例:

IEntity ball=new Sprite(0,0,ballRegion,this.getVertexBufferObjectManager());

MoveXModifier moveModifier = new MoveXModifier(0.5f,-ball.getWidth(),0);

ball.registerEntityModifier(moveModifier);

 

AlphaModifier:控制alpha变化的修改器

ScaleModifier:控制缩放变化的修改器

RotationModifier:控制旋转变化的修改器

ColorModifier:控制颜色变化的修改器

LoopEntityModifier:装载一个或多个IEntityModifier的循环修改器

SequenceEntityModifier:装载一个或多个IEntityModifier的顺序修改器

ParallelEntityModifier:装载一个或多个IEntityModifier的同步修改器(例:同时对一个Entity放大并旋转)

......

二、EaseFunction使用(缓动函数)

IEntity ball =new Sprite

    (0,0,ballRegion,this.getVertexBufferObjectManager());

MoveXModifier moveModifier = new MoveXModifier

    (0.5f,-ball.getWidth(),0,EaseBackInOut.getInstance());

ball.registerEntityModifier(moveModifier);

 

在创建Modifier的构造函数中,有个IEaseFunction接口,填入EaseXXX.getInstance();

三、Modifier注册

当需要使用Modifier时需要调用Entity.registerEntityModifierfinal IEntityModifier pEntityModifier)方法进行注册。

 

四、Modifier反注册

在BaseModifier<T>中有一个域autoUnregisterWhenFinished,默认是true,代表Modifier运行完就自动反注册,手动反注册是调用Entity.unregisterEntityModifierfinal IEntityModifier pEntityModifier

五、Modifier监听

Modifier构造函数中IEntityModifierListener代表Modifier监听

 

//Modifier开始时

public void onModifierStarted(final IModifier<T> pModifier, final T pItem);

//结束Modifier

public void onModifierFinished(final IModifier<T> pModifier, final T pItem);

六、Modifier管理

Entity中,EntityModifierList是管理当前EntityModifier列表,其实质是个ArrayList,注册与反注册其实就是在这个Listadd或者remove处理。

 

 

【v2.x OGE教程 16】 Modifier使用相关