Sprite中的setTexture问题

我在游戏加载资源的时候用SpriteFrameCache缓存一张plist 大图

然后在程序中创建

local sp = Sprite:createWithSpriteFrameName(“sprite.png”)

然后在程序中需要将这张图片换成别的纹理

但在调用

setTexture(“sprite.png”) 函数的时候报错说没有找到图片地址 难道不可以在缓存中读取么?

如果我不想添加图片 只用这张plist中的图片我该肿么办 ?:6::6::6:

请问各位大侠有啥办法没 ?

Sprite也有setSpriteFrame()方法可以用啊,如果初始化的时候用的普通图片就用setTexture替换,如果用的plist的图片初始化,替换的时候就用setSpriteFrame

非常感谢楼上的答复.

看来还是得多学习学习,大神有木有好的方法多学习学习

现在把方法写上来 已解决

local sp = cc.Sprite:createWithSpriteFrameName(“sp.png”)

local sprite = cc.SPriteFrameCache:getInstance():getSpriteFrame(“sprite.png”)

sp:setSpriteFrame(sprite):7::7::7::7:

谢谢 已经解决 :14: :14:

SpriteKit?

因为cocos2d是开源的,所以有什么不明白的就去看他的源代码吧,比如这个例子,进入Sprite类的头文件中看就会看到它有哪些方法可以调用啦,每个方法也有解释,我觉得查看源文件是最好用也最有效率的办法了

setSpriteFrame有两种,一种参数直接是std::string类型的,直接传进去图片名字就可以了,你用的是第二种方法。
virtual void setSpriteFrame(const std::string &spriteFrameName);
virtual void setSpriteFrame(SpriteFrame* newFrame);