我在游戏加载资源的时候用SpriteFrameCache缓存一张plist 大图
然后在程序中创建
local sp = Sprite:createWithSpriteFrameName(“sprite.png”)
然后在程序中需要将这张图片换成别的纹理
但在调用
setTexture(“sprite.png”) 函数的时候报错说没有找到图片地址 难道不可以在缓存中读取么?
如果我不想添加图片 只用这张plist中的图片我该肿么办 ?
请问各位大侠有啥办法没 ?
我在游戏加载资源的时候用SpriteFrameCache缓存一张plist 大图
然后在程序中创建
local sp = Sprite:createWithSpriteFrameName(“sprite.png”)
然后在程序中需要将这张图片换成别的纹理
但在调用
setTexture(“sprite.png”) 函数的时候报错说没有找到图片地址 难道不可以在缓存中读取么?
如果我不想添加图片 只用这张plist中的图片我该肿么办 ?
请问各位大侠有啥办法没 ?
Sprite也有setSpriteFrame()方法可以用啊,如果初始化的时候用的普通图片就用setTexture替换,如果用的plist的图片初始化,替换的时候就用setSpriteFrame
非常感谢楼上的答复.
看来还是得多学习学习,大神有木有好的方法多学习学习
现在把方法写上来 已解决
local sp = cc.Sprite:createWithSpriteFrameName(“sp.png”)
local sprite = cc.SPriteFrameCache:getInstance():getSpriteFrame(“sprite.png”)
sp:setSpriteFrame(sprite)
谢谢 已经解决
SpriteKit?
因为cocos2d是开源的,所以有什么不明白的就去看他的源代码吧,比如这个例子,进入Sprite类的头文件中看就会看到它有哪些方法可以调用啦,每个方法也有解释,我觉得查看源文件是最好用也最有效率的办法了
setSpriteFrame有两种,一种参数直接是std::string类型的,直接传进去图片名字就可以了,你用的是第二种方法。
virtual void setSpriteFrame(const std::string &spriteFrameName);
virtual void setSpriteFrame(SpriteFrame* newFrame);