【v2.x OGE课程 14】 控制使用

【v2.x OGE课程 14】 控制使用

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

 

在这里,精灵、动画精灵、button天才、经常使用的文本的使用

 

一个、相关精灵

 

1.加入精灵

//创建精灵

Sprite bar_up = new Sprite(400, 0, RegionRes.getRegion(Res.BAR_UP),    getVertexBufferObjectManager());

//将精灵加入至BaseEntityGroup或其子类(如:SceneLayer等)

BaseEntityGroup.attachChild(bar_up);

2.精灵翻转

//两者默认是false

bar_up.setFlippedHorizontal(pFlippedHorizontal);//水平翻转

bar_up.setFlippedVertical(pFlippedVertical)//垂直翻转

3.精灵分离

方法一:

object.detachChild(bar_up);//object必须是attachChild时所引用的对象

方法二:

bar_up.detachSelf();//引用其Parent对象将其detach

 

二、动画精灵相关

1.加入动画精灵

//创建动画精灵 所需帧图必须在同一纹理上

AnimatedSprite bird = new AnimatedSprite(0, 0, Res.BRID_YELLOW, 

getVertexBufferObjectManager());

//将精灵加入至BaseEntityGroup或其子类(如:SceneLayer等)

BaseEntityGroup.attachChild(bird);

2.播放动画

AnimatedSprite类中有各种animate方法对帧图进行播放,下面是animate方法中各參数意思:

 

pFrameDurationEach:每帧播放时间(毫秒)

IAnimationListener :监听当播放前后,切换帧,循环结束后。

pLoop:是否循环

pLoopCount:循环次数

pFrameDurations:自己定义每帧播放时间

pFirstTileIndex:从哪一帧開始播放 

pLastTileIndex:从哪一帧结束播放 (FirstTileIndex必须小于LastTileIndex)

pFrames[]:自己定义播放的帧

IAnimationData:设置动画參数的接口

3.播放动画监听

AnimatedSprite类中用IAnimationListener接口来监听动画

 

//AnimatedSprite.LOOP_CONTINUOUS是无限循环

public void onAnimationStarted(final AnimatedSprite pAnimatedSprite, final int pInitialLoopCount);

 

//动画的帧改变时会调用

public void onAnimationFrameChanged(final AnimatedSprite pAnimatedSprite, final int pOldFrameIndex, final int pNewFrameIndex);

 

//循环一次结束时调用

public void onAnimationLoopFinished(final AnimatedSprite pAnimatedSprite, final int pRemainingLoopCount, final int pInitialLoopCount);

 

//动画播放完时调用

public void onAnimationFinished(final AnimatedSprite pAnimatedSprite);

 

 

4.分离动画精灵

方法一:

object.detachChild(bar_up);//object必须是attachChild时所引用的对象

方法二:

bar_up.detachSelf();//引用其Parent对象将其detach

 

三、button精灵

button精灵使用TiledRegion使得button在ButtonSprite.State不同状态中切换帧图。加强表达效果,重写onAreaTouched方法给予用户良好体验,注冊OnClickListener监听点击事件发生

1.加入button

//创建button精灵 所需帧图必须在同一纹理上

ButtonSprite btnOK = new ButtonSprite(0, 0, Res.GAME_READY, 

getVertexBufferObjectManager());

this.attachChild(btnOK);

2.button监听

btnOK.setOnClickListener(new OnClickListener() {

@Override

public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX, 

float pTouchAreaLocalY) {

//TODO 

}

});

3.button状态

NORMAL(0),//普通

PRESSED(1),//按下

DISABLED(2);//不可用

 

DISABLED状态需设置setEnable(pEnabled)才可改变

4.分离button

方法一:

object.detachChild(btnOK);//object必须是attachChild时所引用的对象

方法二:

btnOK.detachSelf();//引用其Parent对象将其detach

 

 

四、文本相关

1.加入文本

//确保BitmapFont已载入。而且已包括所需文字

//pCharactersMaximum 所同意最大文本长度。若超出则后面部分不显示

Text bitmapText = new Text(0, 0, bitmapFont, “Hello World!”,200

new TextOptions(HorizontalAlign.CENTER),

this.getVertexBufferObjectManager());

//将精灵加入至BaseEntityGroup或其子类(如:SceneLayer等)

this.attachChild(bitmapText);

 

2.更新文本

//更新文本后矩形会依据文字内容增大或缩小,所以须要配合setPosition将坐标又一次更改

bitmapText.setText(“Just a Demo”);

3.分离文本

方法一:

object.detachChild(bitmapText);//object必须是attachChild时所引用的对象

方法二:

bitmapText.detachSelf();//引用其Parent对象将其detach

4.软键盘监听

 

 

/**hint 文本为空时出现的信息

* text 默认文本

输入类型ISoftInput.INPUT_TYPE_XXX

最大输入字节数

文本监听

Device.getDevice().getSoftInput().showSoftInput(hint, text, inputType, maxTextLength, onSoftInputListener);

 

五、线、矩形相关

1.创建线、矩形

//创建须要两个点

Line line = new Line(0, 0, 0, 0, pVertexBufferObjectManager);

//将精灵加入至BaseEntityGroup或其子类(如:SceneLayer等)

BaseEntityGroup.attachChild(line);

 

//创建须要设定宽高

Rectangle rect = new Rectangle(0, 0, 100, 100, getVertexBufferObjectManager());

//将精灵加入至BaseEntityGroup或其子类(如:SceneLayer等)

BaseEntityGroup.attachChild(rect);

2.分离线、矩形

方法一:

object.detachChild(line);//object必须是attachChild时所引用的对象

object.detachChild(rect);//object必须是attachChild时所引用的对象

方法二:

line.detachSelf();//引用其Parent对象将其detach

rect.detachSelf();//引用其Parent对象将其detach

 

 

 

版权声明:本文博客原创文章。博客,未经同意,不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117686.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ajaxFileupload多文件上传

    ajaxFileupload多文件上传

    2021年9月10日
    62
  • 解析DBR操作系统引导记录数据

    解析DBR操作系统引导记录数据

    2022年1月1日
    41
  • 互联网快讯:华为云正式推出区块链服务;猿辅导布局素质教育;轻松筹回应裁员

    互联网快讯:华为云正式推出区块链服务;猿辅导布局素质教育;轻松筹回应裁员国内要闻1、HarmonyOS2升级用户数突破1.2亿,平均每天超100万用户升级2、华为云正式推出区块链服务,单链支持每秒5万条商品信息上链3、荣耀CEO赵明:未来可能有上市计划,星耀公司不是荣耀子品牌4、顺丰回应被浙江省消保委点名:拟于9月29日下架“签收确认”增值服务产品5、轻松筹回应裁员:系因业务调整,所有人将按法律规定结算项目工资6、阿里云推出全球首个云定义存储产品,性能大幅提升300%教育培训1、国家发改委价格司:加强学科类校外培训收费监管工作2、猿辅

    2022年7月17日
    19
  • 初探Protostuff的使用[通俗易懂]

    初探Protostuff的使用[通俗易懂]初探Protostuff的使用最近在学习RPC,看到了一个叫做Protostuff的库,是基于谷歌ProtocalBuffer的序列化库,之前了解过ProtocolBuffer,对学习了一些资料后,写了个demo,记录下来。什么是ProtocolBuffer?ProtocolBuffer是谷歌出品的一种数据交换格式,独立于语言和平台,类似于json。Google提供…

    2022年6月7日
    35
  • 一些有意思的 GitHub 项目

    一些有意思的 GitHub 项目GitFiti常用GitHub的同学应该知道GitHub的提交日历,每日提交的次数越多,颜色越深,于是有人写了此项目,可以自动根据配置提交不同次数的日志,这样即可画出指定的图案。看来程序员的脑洞也非常大啊!GitHub地址:https://github.com/gelstudios/gitfitiNoCode正如标题所示,“NoCode”,其作者是来…

    2022年7月16日
    14
  • WES7下载_影音先锋下载

    WES7下载_影音先锋下载WES7(WindowsEmbeddedStandard7)是微软在2010年5月13日发布的基于X86平台,Windows7组件化的嵌入式操作系统。WES7除了具有Windows7最新的功能外,还具

    2022年8月1日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号