cocos2d-x Sprite::create("filename.png") 返回 null
cocos2d-x Sprite::create("filename.png") returning null
出于某种原因,这已停止工作。上次我在做这个项目的时候它是工作的,但现在不是了。我仔细检查了 spaceCannonTitle.png
是否包含在项目中。但它在 setPosition 行抛出异常,因为 title_sprite 为空。
bool MenuScene::init()
{
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto title_sprite = cocos2d::Sprite::create( "spaceCannonTitle.png" );
title_sprite->setPosition( Point( visibleSize.width / 2 + origin.x, visibleSize.height - title_sprite->getContentSize( ).height ) );
this->addChild( title_sprite );
...
}
编辑:
如果我注释掉 title_sprite,那么它不会崩溃,但我看不到菜单并且出现此错误:
libpng error: CgBI: unhandled critical chunk
我找到了解决方案 here。显然你必须去构建设置并将 Remove Text Metadata From PNG Files
设置为 NO
.
出于某种原因,这已停止工作。上次我在做这个项目的时候它是工作的,但现在不是了。我仔细检查了 spaceCannonTitle.png
是否包含在项目中。但它在 setPosition 行抛出异常,因为 title_sprite 为空。
bool MenuScene::init()
{
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto title_sprite = cocos2d::Sprite::create( "spaceCannonTitle.png" );
title_sprite->setPosition( Point( visibleSize.width / 2 + origin.x, visibleSize.height - title_sprite->getContentSize( ).height ) );
this->addChild( title_sprite );
...
}
编辑: 如果我注释掉 title_sprite,那么它不会崩溃,但我看不到菜单并且出现此错误:
libpng error: CgBI: unhandled critical chunk
我找到了解决方案 here。显然你必须去构建设置并将 Remove Text Metadata From PNG Files
设置为 NO
.