Libgdx学习笔记:Scene2d之Group

UI组件之Group

当Group旋转或缩放时,它的孩子们正常绘制,并且Batch变换后正确的旋转或缩放。

绘制Group前,Batch flush使得变换可以设置。有很多Group时这将可能成为性能瓶颈。如果在一组演员不旋转或缩放,然后settransform(false)可用于Group。当这样做,每个孩子的位置基于Group的位置进行绘制,使孩子们出现在正确的位置,即使没有转换

Group继承自Actor,是2D场景绘制的节点,包含了很多其他演员;

每个演员都有一个 z-order 等于他们插入到Group中的顺序,后插入的会绘制在先插入的上面。

触摸事件优先分发到顶层的演员上面。

常用方法说明:

void addActor(Actor actor)

把actor作为子元素加入到组中。

void addActorAt(int index, Actor actor)

把actor作为子元素加入到组中。

固定在某个层级上面。如果index超过了子数组大小,actor会插入到最上层。

setTransform(Boolean tansform)

默认true,代表Group中子元素有旋转,缩放操作。

Group在绘制前会先进行applyTransform然后resetTransform两次操作都会进行Batch的flush().这里会有性能瓶颈问题。如果子元素完全没有旋转缩放操作,可以设置setTransform(false).

继承自Group的类有
WidgetGroup

时间: 2024-11-02 10:21:48

Libgdx学习笔记:Scene2d之Group的相关文章

Libgdx学习笔记: 游戏如何在androidx86 2.2的vbox虚拟机测试运行

这个问题我花了一天半的时间才解决,换了无数个libgdx的版本,0.98.0.99 1.0 还有最新未发布的版本都测试了,虚拟机的版本也换了很多个,都不行 最后总结出来. vBox虚拟机上的androidx86 无论哪个版本,至少我测试的2.2 4.0 4.1 都无法成功运行 libgdx 的opengl es2.0版本的程序 先说下我为什么一定要虚拟机,因为androidAVD带的模拟器不能多个模拟器进行socket交互,我说的是超过2个,只有2个可以端口映射,3个以上就没办法了,而现在我做的

Libgdx学习笔记:封装自己的Actor

为什么要去封装我们自己的Actor? 答:Actor本身可能无法满足我们的开发需求,或者无法支持各种各样的效果,由此需要在其基础上进行拓展. 下面贴出本人二次封装的CHActor代码,供大家参考:   1.CHActor使用了对象缓存池,自动管理释放,很好的解决了游戏中使用大量对象导致帧数较低的问题.    2.自行设置绘制的纹理,而不必使用Image.创建过多的Image会导致帧数下降的很厉害.   3.可自由继承CHActor,方便自己再次扩展. 用法: CHActor chactor  =

Libgdx学习笔记:自己封装各种粒子特效

实现的思路:缓存池+(Image或者CHActor) + Actions 例:实现星星右中心点向圆形周围扩散,且星星不断的旋转,缩小,到达圆上时消失. 这个需求里面对于单个星星包含的Action有: moveTo 移动 roatateBy 旋转 scaleTo 缩小 我们使用Actions.parallel(...)来同时执行上面三个Action.当然我们再执行上面所有Action还需要加上最后的RunnableAction.用来处理粒子结束后的其他工作(释放星星对象到缓存池). 单个星星的运动

Libgdx学习笔记:Simple text input

官方Wiki:https://github.com/libgdx/libgdx/wiki/Simple-text-input 实现接口TextInputListener public class MyTextInputListener implements TextInputListener {       @Override    public void input (String text) {    }       @Override    public void canceled () 

linux学习笔记一 etc/group useradd passwd

/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组:同一用户组的用户之间具有相似的特征.比如我们把某一用户加入到root用户组,那么这个用户就可以浏览root用户家目录的文件,如果root用户把某个文件的读写执行权限开放,root用户组的所有用户都可以修改此文件,如果是可执行的文件(比如脚本),root用户组的用户也是可以执行的:用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全

python学习笔记22(group)

正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(0) #123abc456,返回整体 print re.search("([0-9]*)([a-z]*)([0-9]*)",a).group(1) #123 print re.search("([0-9]*)([a-

Libgdx学习笔记:使用Action做定时器

在Gdx中,定时器可以使用Timer来实现,如: Timer timer = new Timer(); Task timerTask = new Task() { @Override public void run() { } }; timer.scheduleTask(timerTask, 0, 1, 20);// 0s之后执行,每次间隔1s,执行20次. 下面我们使用Action来实现上面的效果: Action[] sAction = new Action[20];// 一共执行20次 //

Libgdx学习笔记:照相机的平滑拖动和缩放效果

不知道线性插值的,自行百度.     核心代码: // 缩放平滑因子 private float zoomSmothFactor = 5f; // 滑动 private float moveSmothFactor = 12f; Vector2 oldZoomVector = new Vector2(0, 1); Vector2 newZoomVector = new Vector2(0, 1f); Vector2 oldPositionVector = new Vector2(); Vector

OpenFlow Switch学习笔记(五)——Group Table、Meter Table及Counters

本文主要详述OpenFlow Switch的另外两个主要组件——Group Table和Meter Table,它们在整个OpenFlow Swtich Processing中也起到了重要作用. 1.Group Table Group Table给OpenFlow Switch提供了更加高级的数据包转发特性(比如select或者all),其由多个Group Entries组成,而每个Group Entry结构如下所示: 每个Group Entry根据其Group Identifier来唯一定位,