在本文中,我们将为您详细介绍Cocos2dx:Sprite切换图片的相关知识,并且为您解答关于cocos切换场景的疑问,此外,我们还会提供一些关于cocos2d-iphone–Cocos2d只显示CC
在本文中,我们将为您详细介绍Cocos2dx:Sprite切换图片的相关知识,并且为您解答关于cocos切换场景的疑问,此外,我们还会提供一些关于cocos2d-iphone – Cocos2d只显示CCSprite的一部分、cocos2d-iphone – Cocos2d的CCSpriteBatchNode抱怨不同的纹理ID、cocos2d-iphone – Cocos2D:在CCSprite上停止/恢复CCAction、cocos2d-iphone – Cocos2d:沿着路径/ bezier移动一个Sprite?的有用信息。
本文目录一览:- Cocos2dx:Sprite切换图片(cocos切换场景)
- cocos2d-iphone – Cocos2d只显示CCSprite的一部分
- cocos2d-iphone – Cocos2d的CCSpriteBatchNode抱怨不同的纹理ID
- cocos2d-iphone – Cocos2D:在CCSprite上停止/恢复CCAction
- cocos2d-iphone – Cocos2d:沿着路径/ bezier移动一个Sprite?
Cocos2dx:Sprite切换图片(cocos切换场景)
Cocos2dx:Sprite切换图片
更换背景图:
auto background1 = Sprite::create("original.png"); Texture2D * pic = Director::getInstance()->getTextureCache()->addImage("Now.png"); background->setTexture(pic);
cocos2d-iphone – Cocos2d只显示CCSprite的一部分
它接缝的contentSize属性没有很好的结果.
解决方法
因此,要使用剪切方法,只需下载ClippingNode class from here,并将要剪切的CCSprite添加到该ClippingNode.然后调用其中一个方法来指定限制绘图的区域.我目前正在使用它来创建一个进度条,所以我肯定它确实很有用.
cocos2d-iphone – Cocos2d的CCSpriteBatchNode抱怨不同的纹理ID
"CCSprite is not using the same texture id"
我很困惑,因为我有一个1024×1024纹理图集和我的所有图形.它是使用TexturePacker创建的,没有批处理节点,一切正常.我一直在加载它:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"atlas1.plist"];
现在我正在尝试使用CCSpriteBatchNode:
CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"something.png"]; CCSpriteBatchNode* bar = [CCSpriteBatchNode batchNodeWithFile:@"atlas1.png"]; [bar addChild: sprite]; // assert error here
我尝试将一些NSLog调试输出添加到cocos2d纹理初始化/查找代码中,并且令人惊讶的是,有一些纹理被创建为具有不同的尺寸(例如256×256甚至更小).我不明白当我只有一个1024×1024 png作为输入时会发生什么.
发生了什么?我该怎么调试呢?
更新:
Bongeh的回答帮助我解决了这个问题 – 让我看了两遍.我的iOS模拟器中有一些旧版本的PNG文件被加载,即使它们不在Xcode项目中也是如此.从Xcode执行“清理”甚至“清理构建文件夹”不起作用,但使用iOS模拟器中的“重置内容和设置”命令就可以了.万岁!
解决方法
将以上代码替换为:
CCSprite* sprite = [CCSprite spriteWithSpriteFrameName:@"something.png"]; CCSpriteBatchNode* bar = [CCSpriteBatchNode batchNodeWithFile:@"atlas1.png"]; [sprite setTexture:[bar texture]]; [bar addChild: sprite]; // assert error here
我发现的唯一另一件事是,如果你的游戏在应用程序委托中收到内存警告,纹理缓存会被清除,你可以将其注释掉,但只要注意清除缓存即可.
cocos2d-iphone – Cocos2D:在CCSprite上停止/恢复CCAction
我已经检查了actionManager中的numberOfRunningAction,但它不等于我期望的数字.
不幸的是,你不能暂停任何特定的行动.您只能暂停所有操作(pauseSchedulerAndActions)或停止单个操作(stopActionByTag:或stopAction :),这会将其从操作列表中删除.不是你想要的.
cocos2d-iphone – Cocos2d:沿着路径/ bezier移动一个Sprite?
基本上我会用这个:
id move = [CCMoveto actionWithDuration:.5f position:ccp(100,200)]; [sprite runAction:move];
现在我怎么可以在一个非线性的路径这样做?
ccBezierConfig bezier; bezier.controlPoint_1 = ccp(0,s.height/2); bezier.controlPoint_2 = ccp(300,-s.height/2); bezier.endPosition = ccp(300,100); id bezierForward = [CCBezierBy actionWithDuration:3 bezier:bezier];
我们今天的关于Cocos2dx:Sprite切换图片和cocos切换场景的分享已经告一段落,感谢您的关注,如果您想了解更多关于cocos2d-iphone – Cocos2d只显示CCSprite的一部分、cocos2d-iphone – Cocos2d的CCSpriteBatchNode抱怨不同的纹理ID、cocos2d-iphone – Cocos2D:在CCSprite上停止/恢复CCAction、cocos2d-iphone – Cocos2d:沿着路径/ bezier移动一个Sprite?的相关信息,请在本站查询。
本文标签: