首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos2d-x3将雪碧添加到布局中。

Cocos2d-x3将雪碧添加到布局中。
EN

Stack Overflow用户
提问于 2014-07-30 05:43:04
回答 1查看 1.6K关注 0票数 2

当我这样做的时候,它是有效的:

代码语言:javascript
复制
Layout* layout = Layout::create();
layout->setLayoutType(Layout::Type::HORIZONTAL);
layout->setContentSize(Size(280, 150));
layout->setPosition(Vec2(visibleOrigin.x + 100, visibleOrigin.y + visibleSize.height - 100));

addChild(layout);

auto jacket = Button::create("jacket.png", "jacket.png", "jacket.png", Widget::TextureResType::PLIST);
layout->addChild(jacket);

但是,当我这样做时(添加了一个雪碧,而不是添加在上面的代码中的按钮):

代码语言:javascript
复制
Layout* layout = Layout::create();
layout->setLayoutType(Layout::Type::HORIZONTAL);
layout->setContentSize(Size(280, 150));
layout->setPosition(Vec2(visibleOrigin.x + 100, visibleOrigin.y + visibleSize.height - 100));

addChild(layout);

auto jacket = Sprite::createWithSpriteFrameName("jacket.png");
layout->addChild(jacket);

然后,我将在带有消息layout->addChild(jacket);Expression: vector subscript out of range上获得断言失败。我想精灵在布局上不受支持吧?那么,在布局中添加和显示图像的正确方法是什么?我应该按下面的方式使用ImageView吗?

代码语言:javascript
复制
auto jacket = ImageView::create("jacket.png",TextureResType::PLIST);
layout->addChild(jacket);

如果是,那为什么?SpriteImage的区别是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 07:00:48

如果我正确理解,按钮将尝试加载名为" jacket.png“的单个文件,而createWithSpriteFrameName初始化程序将尝试从先前加载的纹理图谱中获取jacket.png帧。

这个问题可能很简单,比如在运行此代码之前,夹克图像没有出现在纹理地图集中,或者地图集(帧)没有加载。

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

https://stackoverflow.com/questions/25029560

复制
相关文章

相似问题

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