【v2.x OGE-example 第二章(第二节) 修改器的使用】

【v2.x OGE-example 第二章(第二节) 修改器的使用】,第1张

概述1. 位置:Modifier_example --> Modifier 2. 类名:Modifier     (1).使用modifier 可以做出一些精灵的特效,旋转,倾斜,透明,放大,缩小等等。常用的modifier如下, <1>. AlphaModifier 透明度修改器 <2>. ColorModifier 颜色修改器 <3>. CubicBezierCurveMoveModifier 三 1.位置:ModifIEr_example-->ModifIEr 2.类名:ModifIEr

650) this.width=650;" src="http://img.jb51.cc/vcimg/static/loading.png" title="第二章第二节.png" alt="wKiom1RbPfKQMejeAABk3Gz1X7A620.jpg" src="http://s3.51cto.com/wyfs02/M00/4D/DE/wKiom1RbPfKQMejeAABk3Gz1X7A620.jpg">

(1).使用modifIEr可以做出一些精灵的特效,旋转,倾斜,透明,放大,缩小等等常用的modifIEr如下,

<1>.AlphaModifIEr透明度修改器

<2>.colorModifIEr颜色修改器

<3>.CubicBezIErCurveMoveModifIEr三次方贝塞尔曲线曲线修改器

<4>.DelayModifIEr延迟修改器

<5>.FadeInModifIEr淡入修改器

<6>.FadeOutModifIEr淡出修改器

<7>.JumpModifIEr跳跃修改器

<8>.MoveByModifIEr移动修改器(当前位置开始)

<9>.MoveModifIEr移动修改器(从某个点到另外一个点

<10>.MoveXModifIEr移动X修改器

<11>.MoveYModifIEr移动Y修改器

<12>.PathModifIEr路径修改器

<13>.Qua@R_403_6618@icBezIErCurveMoveModifIEr二次贝塞尔曲线修改器

<14>.RotationAtModifIEr旋转修改器(需传入旋转中心点)

<15>.RotationByModifIEr旋转修改器(只需传入旋转到的目标角度

<16>.RotationModifIEr旋转修改器(从某个角度到另外一个角度

<17>.ScaleAtModifIEr缩放修改器(需传入缩放中心点)

<18>.ScaleModifIEr缩放修改器(从缩放多少倍数到另外一个倍数

<19>.SkewModifIEr倾斜修改器

<20>.SkewXModifIEr倾斜X修改器

<21>.SkewYModifIEr倾斜Y修改器

<22>.LoopEntityModifIEr循环容器修改器(使某个动作修改器循环实行)

<23>.SequenceEntityModifIEr序列容器修改器(使某几个动作修改器依次实行)

<24>.ParallelEntityModifIEr并行实体容器修改器(使某几个动作修改器同时实行)

(2).以下是使用modifIEr的例子:

/**普通ModifIEr用法*/

privatevoIDsetGeneralModifIEr(){

//画蓝色背景填满屏幕

Rectanglerectangle=newRectangle(0,getWIDth(),getHeight(),getVertexBufferObjectManager());

rectangle.setcolor(0.09804f,0.6274f,0.8784f);

this.attachChild(rectangle);//加入场景


AnimatedSpriteface_rect=newAnimatedSprite(gaP*1,150,Regions.FACE_RECTANGLE,getVertexBufferObjectManager());

this.attachChild(face_rect);

//2秒内从0度转到360

RotationModifIErrotation_mod=newRotationModifIEr(2,360);

//注册一个ModifIEr(修改器)在face_rect

face_rect.registerEntityModifIEr(rotation_mod);

}

/**安先后顺序执行ModifIEr用法*/

privatevoIDsetSequenceEntityModifIEr(){

AnimatedSpriteface_rect=newAnimatedSprite(gaP*2,360);

//1秒内从1倍放大到2

ScaleModifIErscale_mod=newScaleModifIEr(1,1,2);

//定制两个ModifIEr按先后顺序执行

SequenceEntityModifIErsequence_mod=newSequenceEntityModifIEr(rotation_mod,scale_mod);


//注册一个ModifIEr(修改器)在face_rect

face_rect.registerEntityModifIEr(sequence_mod);

}

/**循环执行的ModifIEr*/

privatevoIDsetLoopEntityModifIEr(){

AnimatedSpriteface_rect=newAnimatedSprite(gaP*3,2);

//延时0.5s

DelayModifIErdelay_mod=newDelayModifIEr(0.5f);

//ModifIEr按先后顺序执行

SequenceEntityModifIErsequence_mod=newSequenceEntityModifIEr(rotation_mod,delay_mod,scale_mod);

//ModifIEr循环执行

LoopEntityModifIErloop_mod=newLoopEntityModifIEr(sequence_mod);

//注册一个ModifIEr(修改器)在face_rect

face_rect.registerEntityModifIEr(loop_mod);

}

/**ModifIEr加入监听器*/

privatevoIDsetModifIErListener(){

AnimatedSpriteface_rect=newAnimatedSprite(gaP*4,360);


//IEntityModifIErListenerModifIEr监听器,监听开始、结束

LoopEntityModifIErloop_mod=newLoopEntityModifIEr(rotation_mod,5,newIEntityModifIErListener(){

@OverrIDe

publicvoIDonModifIErStarted(IModifIEr<IEntity>pModifIEr,IEntitypItem){

//pItem=whichwillberegister

System.out.println("onModifIErStarted");

pItem.setVisible(true);

}

@OverrIDe

publicvoIDonModifIErFinished(IModifIEr<IEntity>pModifIEr,IEntitypItem){

//pItem=whichwillberegister

System.out.println("onModifIErFinished");

pItem.setVisible(false);

}

});

//注册一个ModifIEr(修改器)在face_rect

face_rect.registerEntityModifIEr(loop_mod);


}


/**一个并行ModifIEr*/

privatevoIDsetParallelEntityModifIEr(){

AnimatedSpriteface_ball=newAnimatedSprite(gaP*1,300,Regions.FACE_BALL,getVertexBufferObjectManager());

//1秒内从0度转到360

RotationModifIErrotation_mod=newRotationModifIEr(1,2);

//1秒内透明度从10

AlphaModifIErAlpha_mod=newAlphaModifIEr(1,0);

//并行ModifIEr

ParallelEntityModifIErparallel_mod=newParallelEntityModifIEr(rotation_mod,scale_mod,Alpha_mod);

//循环ModifIEr

LoopEntityModifIErloop_mod=newLoopEntityModifIEr(parallel_mod);

//注册ModifIEr

face_ball.registerEntityModifIEr(loop_mod);

//加入场景

this.attachChild(face_ball);

}


privatevoIDirregular_EntityModifIErs(){

finalAnimatedSpriteface1=newAnimatedSprite(gaP*2,this.getVertexBufferObjectManager());

face1.setRotationCenter(0,0);//设置左上角为旋转中心点

face1.setScaleCenter(0,0);//设置左上角为放大中心点

face1.animate(100);

finalAnimatedSpriteface2=newAnimatedSprite(gaP*3,this.getVertexBufferObjectManager());

face2.animate(100);

finalSequenceEntityModifIErentityModifIEr=newSequenceEntityModifIEr(

newIEntityModifIErListener(){

@OverrIDe

publicvoIDonModifIErStarted(finaliModifIEr<IEntity>pModifIEr,finalIEntitypItem){

System.out.println("Sequencestarted.");

}

@OverrIDe

publicvoIDonModifIErFinished(finaliModifIEr<IEntity>pEntityModifIEr,finalIEntitypEntity){

System.out.println("Sequencefinished.");

}

},

//第一步:2X1.0缩小到0.75Y1.0放大到2.0

newScaleModifIEr(2,1.0f,0.75f,2.0f),

//第二步:2X0.75放大到2.0Y2.0缩小到1.25

newScaleModifIEr(2,2.0f,1.25f),

//第三步:放大并旋转

newParallelEntityModifIEr(

newScaleModifIEr(3,5.0f,1.25f,5.0f),//3X2.0放大到5.0Y1.25放大到5.0

newRotationByModifIEr(3,180)//3秒旋转到180

),

//第四步:缩小并旋转

newParallelEntityModifIEr(

newScaleModifIEr(3,1),//3秒从5缩小到1

newRotationModifIEr(3,180,0)//3秒旋转从1800

)

);

//注册entityModifIErface1

face1.registerEntityModifIEr(entityModifIEr);

//拷贝出一个entityModifIEr注册到face2

face2.registerEntityModifIEr(entityModifIEr.deepcopy());

this.attachChild(face1);//加入场景

this.attachChild(face2);//加入场景

/*Createsomenot-modifIEdSprites,thatactasfixedreferencestothemodifIEdones.*/

/*加入两个没有做任何动作的精灵作为参考*/

finalAnimatedSpriteface1Reference=newAnimatedSprite(face1.getX(),face1.getY(),face1.getTiledTextureRegion(),this.getVertexBufferObjectManager());

finalAnimatedSpriteface2Reference=newAnimatedSprite(face2.getX(),face2.getY(),face2.getTiledTextureRegion(),this.getVertexBufferObjectManager());

this.attachChild(face1Reference);

this.attachChild(face2Reference);

}

OGE_Example项目源码

总结

以上是内存溢出为你收集整理的【v2.x OGE-example 第二章(第二节) 修改器的使用】全部内容,希望文章能够帮你解决【v2.x OGE-example 第二章(第二节) 修改器的使用】所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1008874.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存