在SceneEditor编辑器里拖进来一个精灵组件初始化的问题

在SceneEditor编辑器里拖进来一个精灵组件,并没有给初始图片,可以在代码里添加图片初始化这个 精灵组件吗?

CCNode pGameScene = SceneReader::sharedSceneReader()->createNodeWithSceneFile(“GameScene.json”);
this->addChild(pGameScene);
CCSprite
pfish = (CCSprite*)(m_pGameScene->getChildByTag(10009));//空的精灵组件
pfish->initWithFile(“girl.png”);//这句为什么会使程序崩溃呢?是否还有其他方法初始化这个精灵组件,已经尝试过用纹理初始化也不行,请高手指点一二,谢谢

不能用init的方法,因为已经在反序列化场景的时候初始化过了,你只需要修改贴图文件即可。

哪个接口适用 没看到哦

CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create(“girl.png”, 1000);
CCTexture2D * texture2d = batchNode->getTexture();//从内存中获得资源
pfish->setTexture(texture2d);出错咯

版主好奇怪,刚用代码创建了一个CCSPrite然后setTexture(texture2d);就可以切换成新图片 代码如下:

CCTexture2D *texture2d = CCTextureCache::sharedTextureCache()->addImage(“122-7990001.png”);

CCSprite* pGirl = CCSprite::create(“girl.png”);
this->addChild(pGirl,100);
pGirl->setTexture(texture2d);

但是:

CCSprite* pfish = (CCSprite*)(m_pGameScene->getChildByTag(10009));
pfish->setTexture(texture2d); 就出错咯 是同一个纹理呢,你帮我看看有什么地方不对吗?

CCSprite* pfish = (CCSprite*)(m_pGameScene->getChildByTag(10009));//空的精灵组件 

你这句话是否正确的取出了sprite呢?

我也不确定,但是
CCComRender render2 = static_cast<CCComRender>(m_pGameScene->getChildByTag(10009)->getComponent(“fish”));
CCSprite* pfish = (CCSprite*)render->getNode();
这样方法读出的render2 都是NULL,

所以直接这样写了:
CCSprite* pfish = (CCSprite*)(m_pGameScene->getChildByTag(10009));//空的精灵组件
pfish 是有值的,但我也不确定对不对,请问版主还有其他方法读到SceneEditor编辑器中的CCprite(空组件)吗?

我觉得CCSprite* pfish = (CCSprite*)(m_pGameScene->getChildByTag(10009));//空的精灵组件 是可以读出sprite,因为我后面还引用这个空sprite的坐标,显示位置是正确的,就是不能改/空的精灵组件的图片。:869:

你这个问题我也遇到了,我也解决不了,不知道怎么解决,cocostudio创建出来的那些层UI用起来比较费劲,也没有完善的文档,蒙不出来的就用别的方法了,这个地方我就没用工具生成的,直接代码加图片,谁要知道怎么能实现楼主说的可以告诉告诉我。
就是实现个用cocostudio ui工具添加上一个imageView的一个图片框,然后再代码给他改个图片,这么简单的是做起来挺费劲的。
我都能imageView然后代码里面变换大小,就是不能换图片

您好,能够将这个资源提供一下呢?我们帮您看一下到底是哪的问题。

很抱歉给您造成这种麻烦。我们最近在出一批新的教程、示例、视频等,请您多加关注。