【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea构建springboot_钉钉的使用方法和技巧

    idea构建springboot_钉钉的使用方法和技巧随着技术框架的不断更新,一些公司摒弃了原先的技术框架模式。而springboot慢慢取代了原有的ssm框架开发。为什么选择springboot呢?配置简单不需要编写太多的xml; 基于spring构建,容易上手; 独立运行不依赖于容器; 内置服务器tomcat不需要打war包; 提供maven极简配置; 对于各种框架有很好的集成; 为SpringCloud微服务奠定基础,使微服务构建变得简单;下面让我们使用idea一起搭建完整版的SpringBoot项目:一.创建SpringBoot项

    2025年8月29日
    8
  • 3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!

    3分钟搞定下载微信视频号视频!无需第三方软件,亲测有效!2020年是视频号的元年,现在2021视频号还处在发展初期,但是它的潜力是巨大的,将来的价值会超过抖音。你在视频号上点赞的视频,你的好友都会看到,这一点非常有利于营销推广。但抖音上的粉丝和微信联系人是割裂的,我们所有的社交关系都在微信上。但是视频号的短视频内容无法像抖音、快手一样,保存本地或者复制作品链接进行解析下载。有没有其他小技巧能绕过视频号未完善的功能,直接保存视频内容呢?当然有,请记住一句话,在android的系统中,视频是所见即所得本文只针对android系统,不需要借助任何第三方软件,

    2022年6月17日
    49
  • python编译同时存在多个编译环境终端如何切换

    python编译同时存在多个编译环境终端如何切换

    2021年11月10日
    55
  • 一比一还原axios源码(四)—— Axios类

    axios源码的分析,到目前为止,算上第0章已经四章了,但是实际上,还都没有进入axios真正的主线,我们来简单回顾下。最开始我们构建了get请求,写了重要的buildURL方法,然后我们处理请求体请

    2022年3月25日
    43
  • 思科 计算机网络 期末考试答案

    思科 计算机网络 期末考试答案1.以下哪个域名是顶级域的一个示例?A.root.cisco.comB.www.cisco.comC.cisco.comD…com2.第2层数据封装有哪三个主要功能?(请选择三项。)A.将位组定界为帧B.通过冲突检测方法纠正错误C.在介质中放置和删除帧D.将位转换为数据信号E.通过CRC计算检测错误F.数据链路层寻址G.使用端口号控制会话3.管理员在发出ping命令之后在交换机上使用Ctrl-Shift-6键组合。使用这些按键有什么用途?A.允许用户完成命令B.中

    2022年7月23日
    15
  • 现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]

    现代数字图像处理作业———对lena图像进行简单处理[通俗易懂]对lena图像加入椒盐噪声,强度为30%,分别采用均值滤波,中值滤波进行处理。并讨论不同尺度的模板对结果的影响。

    2022年6月19日
    45

发表回复

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

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