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

一个、相关精灵

1.加入精灵

//创建精灵

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

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

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或其子类(如:Scene、Layer等)

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或其子类(如:Scene、Layer等)

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或其子类(如:Scene、Layer等)

BaseEntityGroup.attachChild(line);

//创建须要设定宽高

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

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

BaseEntityGroup.attachChild(rect);

2.分离线、矩形

方法一:

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

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

方法二:

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

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

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

【v2.x OGE课程 14】 控制使用的更多相关文章

  1. 【v2.x OGE课程 15】 布局相关

    1.父亲和儿子的关系 我们可以Entity类看到非常多parent(父)与child(子)这种字眼,这是游戏引擎中常有的概念,简单而言是一种has-a的关系 watermark/2/text/aHR0 ...

  2. mysql数据库优化课程---14、常用的sql技巧

    mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...

  3. laravel基础课程---14、表单验证(lavarel如何进行表单验证)

    laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...

  4. js课程 1-4 js变量的作用域是怎样的

    js课程  1-4   js变量的作用域是怎样的 一.总结 一句话总结:只有在函数内部前面带var的变量为局部变量,局部变量只能在函数体内使用. 1.什么情况下会出现NaN类型的错误,举一例? Num ...

  5. Andrew Ng机器学习课程14(补)

    Andrew Ng机器学习课程14(补) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 利用EM对factor analysis进行的推导还是要参看我的上一 ...

  6. Andrew Ng机器学习课程14

    Andrew Ng机器学习课程14 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要介绍了当数据量不足,利用EM算法对混合高斯模型进行建模时数据量比 ...

  7. 炼数成金数据分析课程---14、Logistic回归

    炼数成金数据分析课程---14.Logistic回归 一.总结 一句话总结: 大纲+实例快速学习法 主要讲Logistic回归的原理及编程实现 1.事件的优势比(odds)是什么? 记y取1的概率是p ...

  8. 尚学python课程---14、python中级语法

    尚学python课程---14.python中级语法 一.总结 一句话总结: var[1:5] 访问模式:比如字符串,比如列表元祖,字典等 del 删除模式:比如列表.元祖.字典 1.Python的N ...

  9. Linux课程---14、linux下lamp环境如何安装

    Linux课程---14.linux下lamp环境如何安装 一.总结 一句话总结: 要按顺序安装,比如apache需要在php之前安装, 一.安装 gcc 编译器 二.卸载 rpm 安装的 http ...

随机推荐

  1. WM_PARENTNOTIFY的作用(不完全)

    VCL里源码如下: procedure TWinControl.WMParentNotify(var Message: TWMParentNotify); begin with Message do ...

  2. 禁用掉用户帐号,用户Lync客户端仍然可以登录!

    问题: 有这样的一个情况,一位具有LYNC权限的用户离职了,AD账号已经禁用.LYNC和邮箱功能暂时保留.可用户离职4天了,还能够正常登录到LYNC,能够正常发送和接收即时消息.我经过测试,确实AD账 ...

  3. HBase总结(二十)HBase经常使用shell命令具体说明

    进入hbase shell console $HBASE_HOME/bin/hbase shell 假设有kerberos认证,须要事先使用对应的keytab进行一下认证(使用kinit命令),认证成 ...

  4. 关于hibernate中多对多关系

    关于多对多关系 数据库:在使用多对多的关系时,我们能够使用复合主键.也能够不使用,直接引入外键相同能够实现. 在数据库中使用多对多关系时,须要一个中间表. 多对多关系中的数据库结构例如以下: 表:Or ...

  5. [linux]chown和chmod命令

    chown chown命令是将指定文件的拥有者改为指定的用户或组 例如: chown mail:mail test.log,把test文件指定拥有者和组都为mail chown -R mail:mai ...

  6. win8 远程桌面 你得凭证不工作

    今天在在登录azure远程桌面时,一直提示你的凭证不工作, 按照网上各种教程都不行, 后来发现在win8中用户名结构中,需要加上本机电脑名比如:“win8\administrator”.

  7. C编译: 使用gdb调试

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! gdb是the GNU Debugger的简称.它是一款UNIX平台的调试器(de ...

  8. ON、WHERE、HAVING的差别

    ON .WHERE.HAVING都能通过限制条件筛选数据,但他们的使用及其不同.以下我们来分析三者之间的差别. 1.       ON 和WHERE 全部的查询都回产生一个中间暂时报表,查询结果就是从 ...

  9. poj3126(bfs)

    题目链接:http://poj.org/problem?id=3126 题意:给两个四位数n,m,将n变成m需要多少步,要求每次只能改变n的某一位数,即改变后的数与改变前的数只有一位不同,且每次改变后 ...

  10. Cocos2dx项目启程一 之 封装属于我的精灵类

    给自己的假期就快要结束了,该要做点事情了,哪怕简单的不好的也比不做的有意义. /*#pragma once 保证头文件只被编译一次 #pragma once是编译器相关的,就是说即使这个编译系统上有效 ...