- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个配置如下的 CCSpriteBatchNode
:
CCSpriteBatchNode
ChildA1
ChildB1
ChildB2
....
ChildB999
ChildA2
ChildA3
...
所有 child (ChildA1、ChildB1、ChildA2...)都是 CCSprite
对象。 CCSpriteBatchNode
和除 ChildA1
之外的所有子节点都是通过以下方式创建的:
[CCSprite spriteWithSpriteFrameName:@"FileName.png"];
ChildA1
是这样创建的:
// Create Parent Sprite
CCSprite* childA1 = [[CCSprite alloc] init];
childA1.contentSize = CGSizeMake(37.5,37.5);
childA1.anchorPoint = ccp(0,0);
[batchNode addChild:childA1 z:0 tag:1];
// Add Child Sprites
[childA1 addChild:childB1 z:0 tag:1];
[childA1 addChild:childB2 z:0 tag:1];
[childA1 addChild:childB3 z:0 tag:1];
// Continue adding childB4-childB999
注意:这渲染得很好,我看到了我期望的输出,其中 childB1
的位置是相对于 childA1
的,并且移动 childA1
导致 childB1
移动。
我的问题是:我会在绘制 childB1
-childB999
时看到性能提升吗?据我了解,CCSpriteBatchNode
优化了 CCSpriteBatchNode
中所有子节点的绘制,方法是将其所有子节点 CCSprites
绘制在一起。这是否也适用于那些 CCSprites
的子级?
对于那些想知道我为什么这样做的人:这个游戏中有很多层,将 CCSprites
分组到 CCSpriteBatchNode
中的 CCSprite
允许我操作一组 CCSprites
通过只操纵那组 Sprite 的父级。
最佳答案
简短的回答是,是的,CCSpriteBatchNode
将为所有子节点(包括所有间接后代)进行一次绘制调用。
但是,这是否比使用常规 CCSprites
表现更好取决于您修改 Sprite 的频率。当您使用 CCSpriteBatchNode
时,每次修改 Sprite 时,它都需要使用 CPU 而不是 GPU 重新计算该 Sprite 及其所有子级的纹理图集四坐标。对于您的示例,如果您移动 ChildA1
的位置,则将在渲染下一帧之前重新计算 ChildB1
到 ChildB999
的坐标。在大多数应用程序中,openGL 绘制调用的减少会加重额外计算的成本,因为绘制调用相对昂贵,但最终这将取决于您的应用程序及其使用 Sprite 的方式——所以我建议进行实际测量如果这是一个性能瓶颈,您的应用程序。
关于iphone - CCSpriteBatchNode : Does the Child of Child receive drawing performance gains?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13340108/
我的收藏具有以下结构 { _id:1, parent_id:0 } { _id:2, parent_id:1 } { _id:3, parent_id:1 } { _id:4, par
到目前为止,我已经尝试过获取该对象的所有子对象,但它只带来了两个子对象。不都是 child 的 child 。我如何获取所有内容并循环获取特定名称对象 Transform[] objChild = g
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我有一个如下表 好吧,在这个表中每个用户都有一个父用户,那么如果我们选择一个用户,那么它的 id 、子代 id 和子代子代 id 应该作为数组返回。我需要一个查询来获取 Rails 中的这些值,而不使
我需要以下代码的帮助: HTML: process process 在点击 td[class=process] 时,我需要 input[name=dat
好的,所以我从中获得了一个 PHP,该 PHP 由依赖于手头动态情况的切换循环传播(我认为)。现在,当我添加一个复选框时,我希望能够使 div 中的第一个复选框具有顶部边框和侧面,没有底部。下面的只有
我正在使用 Swift 和 Sprite Kit。我有一个名为 MrNode 的 SKNode,它有多个 SKSpriteNodes 和 SKNode 子节点。一些SKNode有子节点,而这些子节点也
对不起,这个标题太俗了,但我真的不确定如何解释这个,我是新一代的 SQL 技能由于事件记录模式而退化的人之一! 基本上我在 PostgreSQL 中有三个表 客户端(一个客户端有很多 map ) -
我有这样的简单表格: 编号 parent_id 创建于 具有父/子关系...如果一行是子行,则它有一个 parent_id,否则它的 parent_id 为 0。 现在我想选择所有没有子项(因此本身)
所以我有这样的结构: 我的问题是:如何从每个主题中删除 ID 为 3Q41X2tKUMUmiDjXL1BJon70l8n2 的每个字段。我正在考虑这样的事情: admin.database().ref
这个问题在这里已经有了答案: Change opacity on all elements except hovered one (1 个回答) 关闭 5 个月前。 因此,当鼠标悬停在 child
我需要在 Delphi 5 中创建一个 QuickReport,其布局如下: +================ | Report Header +================ +========
假设我有这样的 html: Some more detailed code.... 我想知道如何在CSS中使用“A
我有一个使用 flexbox 的类似表格的布局: +--------------+---------------+-----------------+---------------+ | 1
我有一个关联,其中 user has_many user_items 和 user_items has_many user_item_images。与一个已经退出的用户。我可以创建一个新的 user_
我想选择无序列表中的前两个列表项。我可以这样选择第一项: ul li:nth-child(1) a { background: none repeat scroll 0 0 beige; }
ul li:first-child a { border-radius: 5px 5px 0 0; } ul li:last-child a { border-radius: 0 0 5p
我有一个这样的表:
或者这些术语用于指代同一事物? 我正在尝试在我的 Win32 应用程序中实现一些显示位图图像的自定义按钮。一个教程指出我应该使用 CreateWindow() 创建子窗口。 但是,我已经从另一个关于创
我想在 jquery 中获取我的 svg 的 id,我尝试了这个 jquery,但它是未定义的。 $(event.target).children('svg').attr("id") Target.e
我是一名优秀的程序员,十分优秀!