我有一个使用初始化的CCSprite [CCSprite spriteWithSpriteFrameName:@"plist_file_key_here.png"].我已经将plist文件中的所有sprite添加到CCSpriteFrameCache中.我试过像这样设置纹理:
CCSpriteFrame * frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:name];
NSAssert(frame.texture!=nil, @"frame.texture can't equal nil"); //this works fine
[sprite setTexture:frame.texture]; //doesn't cause a white square to appear, just doesn't switch the image.
Run Code Online (Sandbox Code Playgroud)
正如我在评论中所说,这不起作用.我认为它与using [CCSprite spriteWithFile:]和之间的区别有关[CCSprite spriteWithSpriteFrameName:],它依赖于从纹理图集加载到CCSpriteFrameCache中的精灵帧.当使用从纹理图集加载的精灵时,每个精灵的纹理等于精灵图纸的纹理.有没有办法解决这个问题,还是我必须删除并重新创建精灵?如果这是我唯一的选择,有没有办法从其父节点删除ccnode但保留其子节点?
我知道有些人已经设法做到了这一点,因为应用程序商店中存在大量由irrlicht提供支持的应用程序.我试图建立一个包含所有irrlicht源的xcode项目,并为ios编译和运行但无法使其工作.我正在使用irrlicht 1.7.3.有没有人设法做到这一点谁愿意分享他们如何完成这个?
我知道之前已经问过这个问题,但没有人就如何解决这个问题给出任何有用的答案.我有一个使用box2d物理引擎的cocos2d ios应用程序.我对它进行了性能测试,cpu花费了5.6%的时间在mach_msg_trap上.从我从其他问题中收集的内容来看,似乎mach_msg_trap只是由于您的应用程序处于空闲状态而导致的主要线程时间.我的申请并不闲着.它的性能不稳定,在50 fps区域内徘徊.有没有办法配置它以获得额外的性能?或者这只是我编写的一些不良代码的结果,如果是这样,我该如何优化它?
我正在ipod touch第二代的调试版本中测试性能.这可能是问题的一部分.我在sprite批次中对某些事物进行分组.但有些精灵有孩子不是ccsprites所以我不能将所有东西分组在一个批次中.我确实创建了一个子弹池,而不是不断地分配和释放它们.但这是我获得不稳定表现的地方.当枪开始射击时,帧速率下降10-15 fps.我试图跟踪使用乐器所花费的时间,但前两次使用的是glValidateState,其中包括ccsprite draw和ccnode visit.第二个开始时间waister是mach_msg_trap.有没有其他方法可以找出子弹代码中的内容会降低性能?顺便说一句,你的书真有助于学习cocos2d :)