我读过此页来理解批量绘制的细节,但我仍然有问题。我知道,为了减少打电话号码,我们需要使用批绘制。我就是这样用的:
auto spritebatch = SpriteBatchNode::create("ingame.png");
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ingame.plist");
现在我需要创建一个雪碧,我必须这样做:
auto backgroundSprite = Sprite::createWithSpriteFrameName("back_gradient.png");
spritebatch->addChild(backgroundSprite);
但我不明白以下几点:
SpriteBatchNode
?然后把它们加进花纹层?Button
、TextEdit
、Label
和其他UI元素中使用sprites怎么办?- First of all can I initialize Button state images from spritesheet?
- As I know I cannot add UI element as a child to `SpriteBatchNode`. In this case how to combile UI elements and sprite in the same view/scene?
很抱歉有很多问题。但事实是,我找不到任何资源,其中包含了这些问题的解释。而他们都是亲戚。如果您不知道这些问题的答案,您就不知道如何使用SpriteBatchNode
。
发布于 2014-07-03 07:35:48
不要在cocos2d-x v3中使用v3。批处理是自动的,最好由渲染器通过批绘制优化绘制调用。在你所链接的那篇文章里是这么说的:
呈现图与场景graph.That分离,这意味着支持自动批处理,最后:-)和新的渲染器是如此之快,我们不再鼓励使用SpriteBatchNode。
发布于 2014-11-11 19:11:41
我不同意,不取决于新渲染的速度,我们想得到它的大部分,我们可以。
Narek,你说得对在渲染过程中,几何图形将被排序,以减少GL调用的数量。但不要指望它会把不同父母的孩子一字一句分类。例子:你有
带儿童的节点A ab和ac
节点B与儿童、bd、和be。
如果b和d使用相同地图集的纹理,这并不能保证您将得到任何使用地图集的任何性能提升。
但是我可以确认,目前它确实非常快,在我的例子中,GL调用根本不是瓶颈:)
https://stackoverflow.com/questions/24542477
复制相似问题