首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解释cocos2d-x3批绘制

解释cocos2d-x3批绘制
EN

Stack Overflow用户
提问于 2014-07-02 23:05:24
回答 2查看 4.2K关注 0票数 1

我读过此页来理解批量绘制的细节,但我仍然有问题。我知道,为了减少打电话号码,我们需要使用批绘制。我就是这样用的:

代码语言:javascript
运行
复制
auto spritebatch = SpriteBatchNode::create("ingame.png");
SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ingame.plist");

现在我需要创建一个雪碧,我必须这样做:

代码语言:javascript
运行
复制
auto backgroundSprite = Sprite::createWithSpriteFrameName("back_gradient.png");
spritebatch->addChild(backgroundSprite);

但我不明白以下几点:

  1. 如果我的游戏有几个飞碟。例如,我有HUD spritesheet和ingame。现在,如果我想用HUD显示美名屏幕,那么我需要创建2 SpriteBatchNode?然后把它们加进花纹层?
  2. 如果应该在不同的场景中使用相同的spritesheet,该怎么办。我应该再做一次吗? Autosprite批处理= SpriteBatchNode::create("ingame.png");ingame.png
  3. 如果我在ButtonTextEditLabel和其他UI元素中使用sprites怎么办?
代码语言:javascript
运行
复制
- 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

EN

回答 2

Stack Overflow用户

发布于 2014-07-03 07:35:48

不要在cocos2d-x v3中使用v3。批处理是自动的,最好由渲染器通过批绘制优化绘制调用。在你所链接的那篇文章里是这么说的:

呈现图与场景graph.That分离,这意味着支持自动批处理,最后:-)和新的渲染器是如此之快,我们不再鼓励使用SpriteBatchNode。

票数 0
EN

Stack Overflow用户

发布于 2014-11-11 19:11:41

我不同意,不取决于新渲染的速度,我们想得到它的大部分,我们可以。

Narek,你说得对在渲染过程中,几何图形将被排序,以减少GL调用的数量。但不要指望它会把不同父母的孩子一字一句分类。例子:你有

带儿童的节点A abac

节点B与儿童、bd、be

如果b和d使用相同地图集的纹理,这并不能保证您将得到任何使用地图集的任何性能提升。

但是我可以确认,目前它确实非常快,在我的例子中,GL调用根本不是瓶颈:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24542477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档