【v2.x OGE课程 14】 控制使用
在这里,精灵、动画精灵、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】 控制使用的更多相关文章
- 【v2.x OGE课程 15】 布局相关
1.父亲和儿子的关系 我们可以Entity类看到非常多parent(父)与child(子)这种字眼,这是游戏引擎中常有的概念,简单而言是一种has-a的关系 watermark/2/text/aHR0 ...
- mysql数据库优化课程---14、常用的sql技巧
mysql数据库优化课程---14.常用的sql技巧 一.总结 一句话总结:其实就是sql中那些函数的使用 1.mysql中函数如何使用? 选择字段 其实就是作用域select的选择字段 3.转大写: ...
- laravel基础课程---14、表单验证(lavarel如何进行表单验证)
laravel基础课程---14.表单验证(lavarel如何进行表单验证) 一.总结 一句话总结: lavarel的验证的功能比tp要[简单]且[强大]很多 直接控制器中:添加[规则数组]和[修改提 ...
- js课程 1-4 js变量的作用域是怎样的
js课程 1-4 js变量的作用域是怎样的 一.总结 一句话总结:只有在函数内部前面带var的变量为局部变量,局部变量只能在函数体内使用. 1.什么情况下会出现NaN类型的错误,举一例? Num ...
- Andrew Ng机器学习课程14(补)
Andrew Ng机器学习课程14(补) 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 利用EM对factor analysis进行的推导还是要参看我的上一 ...
- Andrew Ng机器学习课程14
Andrew Ng机器学习课程14 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要介绍了当数据量不足,利用EM算法对混合高斯模型进行建模时数据量比 ...
- 炼数成金数据分析课程---14、Logistic回归
炼数成金数据分析课程---14.Logistic回归 一.总结 一句话总结: 大纲+实例快速学习法 主要讲Logistic回归的原理及编程实现 1.事件的优势比(odds)是什么? 记y取1的概率是p ...
- 尚学python课程---14、python中级语法
尚学python课程---14.python中级语法 一.总结 一句话总结: var[1:5] 访问模式:比如字符串,比如列表元祖,字典等 del 删除模式:比如列表.元祖.字典 1.Python的N ...
- Linux课程---14、linux下lamp环境如何安装
Linux课程---14.linux下lamp环境如何安装 一.总结 一句话总结: 要按顺序安装,比如apache需要在php之前安装, 一.安装 gcc 编译器 二.卸载 rpm 安装的 http ...
随机推荐
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Python学习入门基础教程(learning Python)--5.3 Python写文件基础
前边我们学习了一下Python下如何读取一个文件的基本操作,学会了read和readline两个函数,本节我们学习一下Python下写文件的基本操作方法. 这里仍然是举例来说明如何写文件.例子的功能是 ...
- 怎样控制界面控件之进度条(ProgressBar)功能
一.基础知识: 1.ProgressBar在界面文件XML中的布局: [html] <progressBar android:id="@+id/progressbar_updown&q ...
- MVC之Session State性能
ASP.NET MVC之Session State性能问题(七) 前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Sess ...
- Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头、麦克风等。
Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等. Cordova还提供了一组统一的JavaScript类库,以及为这 ...
- hdu3415(单调队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3415 题意:一个长度为n包含正负整数的数环,即第1个的左边是第n个.从中选一个不超过k的序列,使得序列 ...
- I2C操作笔记——以 AT24C04为例
1.前言 对于大多数project师而言,I2C永远是一个头疼的问题.相比UART和SPI而言,I2C的时序要复杂一些,I2C组合变化也丰富一些.在这里以AT24C04为例说明I2C使用过程中 ...
- cocos2d-x 旅程開始--(实现瓦片地图中的碰撞检測)
转眼隔了一天了,昨天搞了整整一下午加一晚上,楞是没搞定小坦克跟砖头的碰撞检測,带着个问题睡觉甚是难受啊!还好今天弄成功了.只是感觉程序不怎么稳定啊.并且发现自己写的东西让我重写一遍的话我肯定写不出来. ...
- HDU 5074-Hatsune Miku(DP)
Hatsune Miku Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) T ...
- python面向对象的继承
无话可说,继承主要是一些父类继承,代码是非常具体的 #!/usr/bin/env python #coding:utf-8 class Father(object):#新式类 def __init__ ...