【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

 

 

 

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • DevOps 与 CICD 详解

    DevOps 与 CICD 详解DevOpsDevOps是Development(开发)和Operations(运维)的组合,是一种方法论,是一组过程、方法与系统的统称,用于促进应用开发、应用运维和质量保障(QA)部门之间的沟通、协作与整合,以期打破传统开发和运营之间的壁垒和鸿沟;DevOps是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,通过自动化软件交付和架构变更的流程…

  • java服务器开发心得

    java服务器开发心得本人已从事java服务器开发三年多了,对java服务器开发比较有心得,特此对这三年多来进行下技术总结,并与大家分享。作为服务器开发,对基础知识的掌握程度,将决定你的服务器各方面的能力,一般在进行java服务器开发前,最重要的是能够熟练运用以下技术:javaclassLoader、javathread、javaI/O(NIO)和javasocket。 一般来说,服务器设计大致

  • 目前主流的Eclipse版本是哪个版本?面向哪个版本的JDK?_JDK版本

    目前主流的Eclipse版本是哪个版本?面向哪个版本的JDK?_JDK版本版本代号平台版本主要版本发行日期SR1发行日期SR2发行日期需要的JDK最低版本Callisto3.22006年6月26日N/AN/AJDK1.4Europa3.32007年6月27日2007年9月28日2008年2月29日JDK1.5Ganymede3.42008年6月25日2008年9月24日2009年2月25日JDK1.5Galileo3.52009年6月24日2009年9月25日2010年…

  • 多重共性和VIF检验「建议收藏」

    多重共性和VIF检验「建议收藏」图片来源https://wenku.baidu.com/view/7008df8383d049649b66581a.html 和https://wenku.baidu.com/view/6acdf95e52ea551811a68721.html

  • metasploit指令_msfconsole下载

    metasploit指令_msfconsole下载在MSF里面msfconsole可以说是最流行的一个接口程序。很多人一开始碰到msfconsole的时候就害怕了。那么多复杂的命令语句需要学习,但是msfconsole真的是一个强大的接口程序。Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的…

  • 防止页面url缓存中 ajax中post 请求的处理方式

    一般我们在开发中经常会用到Ajax请求,异步发送请求,然后获取我们想要的数据,在Ajax中使用Get请求数据不会有页面缓存的问题,而使用POST请求可是有时候页面会缓存我们提交的信息,导致我们发送的异步请求不能正确的返回我们想要的数据。

发表回复

您的电子邮箱地址不会被公开。

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