Tag: cocos2d iphone

如何优化mach_msg_trap

我知道这个问题之前已经被问过了,但没有人给出如何解决的有用答案。 我有一个使用box2d物理引擎的cocos2d ios应用程序。 我对它进行了性能testing,cpu花费了mach_msg_trap的5.6%的时间。 从我从其他问题收集的信息来看,好像mach_msg_trap只是因为应用程序处于闲置状态而减less了主线程的时间。 我的应用程序不是闲置。 它有不稳定的performance,盘旋在50 fps的区域。 有什么办法来configuration这个来获得额外的性能? 或者这只是我写的一些不好的代码的结果,如果是的话,我该如何优化它? 我正在testing第二代iPod touch上的debugging版本的性能。 这可能是问题的一部分。 我正在精灵群组中分组某些东西。 但有些小精灵的孩子不是聪明人,所以我不能把所有的东西都分成一组。 我确实创造了一批子弹,而不是经常分配和释放它们。 但这是我得到不稳定的performance。 当枪开始发射时,帧率下降10-15 fps。 我试图追踪使用仪器这么久的情况,但是最重要的两个时间是waValidateState,其中包括ccsprite绘制和ccnode访问。 第二次请求的时候,waister是mach_msg_trap。 有没有其他的方法来找出子弹的代码中是什么,这会降低性能? 顺便说一下,你的书是真正有用的学习cocos2d 🙂

更新为ARC错误

我正在尝试将一个项目更新到ARC。 虽然我已经看到更新到ARC的几个post,但我没有看到任何post处理这个特定的问题。 我有很多错误,大多数人说: ARC Issue Pointer to non-const type 'id' with no explicit ownership 指着线 CCARRAY_FOREACH(children_, item) 在CCMenu.m类中。 请帮忙。 更新: 重新启动Xcode后,上面的问题不再被发现 CCARRAY_FOREACH(children_, item) 但是在ccCArray.h类中我发现了这些行 // Arc Issue 还有其他几个错误。 警告标志: Arc Issue Destination for this '_builtin__memmove_chk' call is a pointer to ownership-qualified-type 'autoreleasing-id' 出现在代码中调用memmove的地方。 另一个错误: ARC Casting Rules Implicit conversion of C pointer type 'void *' […]

我可以在我的Cocos2D-iPhone游戏中支持VoiceOver吗?

我正在制作一个游戏,玩家通过动作对声音做出反应,因为视觉元素不需要演奏,许多玩家闭着眼睛,所以不能完全兼容VoiceOver。 我目前正在使用Cocos2D-iPhone和CocosDenshion进行audio处理,现在开始考虑如何构build我的菜单系统来select级别和configuration控件。 在Cocos2D的菜单系统中支持VoiceOver是否合理,或者我应该尝试在UIKit中创build我没有经验的菜单?

无法validation软件包:721772200.itmsp

我写信是因为我有一个严重的问题 – 我在cartoonsmart网站上购买了Commander Cool游戏。 然而,一个严重的问题发生。 iTune Connectvalidation无法接受该应用程序。 我试图从两个不同的开发者帐户发布它,错误仍然发生。 错误提示证书存在一些问题,但我相信这是100%正确的,因为我现在已经在App Store中发布了20多个应用程序。 我请求你的帮助,因为你是我最后的希望。 我改变的唯一的事情是在有效的架构中添加armv6,因为没有它的应用程序无法加载。 通过iTunes Connect显示错误: “在validation过程中发现了以下问题:Apple的Web服务操作不成功无法validation软件包:721772200.itmsp错误ITMS-9000:”The bundle'com。 。 '在捆绑path'Payload / CommanderCool.app未使用Apple提交证书签名。“在SoftwareAssets / SoftwareAsset(MSItmspSoftwareAssetPackage)?

如何检测cocos2d中sprite的碰撞

我想检测一个精灵与另一个精灵的碰撞。 但是我想检查精灵是否被其他精灵的左边部分触摸或者与精灵的右边部分接触。 我正在使用下面的代码来检测碰撞。 但是这会检测整个碰撞(在其他精灵的任何点碰到精灵)。 但是如果精灵被触摸到其他精灵的正面,则想要计数就是碰撞。 if (CGRectIntersectsRect(sprite1.boundingBox, sprite2.boundingBox)) { NSLog(@"sprite1 to delete"); } 有人知道怎么做吗?

iOS和Cocos2d – 更改CCSprite的图像和新维度= FAIL

在我的游戏中的一个通电是主精灵的大小减less。 所以为了记忆的缘故,我没有在每帧中循环一个sprite.scale,而是将sprite重新保存在比原始sprite低百分比的大小上,只是想replace它。 然后一旦“死亡”发生或计时器用完,原始精灵返回。 所以,我使用这个代码来使它变小: [player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-small.png"]]; 而这个代码重置为正常: [player setTexture:[[CCTextureCache sharedTextureCache] addImage:@"player-orig.png"]]; 然而,原始图像(在初始化和重置时)看起来很正常。 但是当我把它改变成新的精灵(其尺寸正好是原来的75%)时,它改变了它,但是只显示了新精灵的一个象限,但是具有原始尺寸。 我重新修改了sprite之前,我尝试过修改sprite.contentsize,但是所做的只是改变了大小,但并没有影响图像混乱的问题。 这里有一些视觉例子: 原版的: 带有contentSize修改的重新映射的图像: 将contentSize重新设置为原始图像的内容不正确(哎呀,但这不是一个问题 – 我只是忘了读大小码): PS – 我有我的所有精灵的“-hd.png”版本,所以我只是想添加任何人想知道(到目前为止的图像和testing只有在“nonretina”模拟器)。 谢谢! 编辑:问题也出现在视网膜模拟器上的testing。

cocos2d v3支持多屏分辨率?

我对Cocos2d v3对多屏分辨率的支持感到困惑。 如果我使用CCSetupScreenMode: CCScreenModeFlexible ,我应该提供什么图像的默认分辨率? 目前,我已经提供了所有的iOS设备分辨率的资产和后缀,正确的图像加载到iPhone“3.5英寸”和iPad上。 但是,iPhone“4英寸”的“-568h @ 2x”后缀无法正常工作。 我使用错误的后缀? 我想避免使用macros来确定游戏运行在哪个设备上,并相应地加载图像。 感谢您的时间!

更改Box2D锚点?

在Cocos2D中,我正在创build我的CCSprites,其定位点(0,1)类似于UIKit的方式。 无论如何,我正试图改变Box2D的定位点,这是可能的吗? 如果是的话,我将如何做(0,1)的锚点? 谢谢!

如何实施Cocos2D?

我已经从他们的网站下载了最新的cocos2d,我已经解压缩了。 现在我很困惑如何将它实现到一个已经存在的项目中。 我拖了些什么文件,除此之外,还有什么我需要做的? 谢谢!

将GameCenter添加到横向专用的cocos2d应用程序后,iOS 6中出现错误

我遇到了这里描述的问题: https ://devforums.apple.com/thread/165384?tstart = 0我的应用程序崩溃试图加载GameCenterlogin屏幕,因为屏幕是纵向的,我的应用程序只支持横向。 我已经尝试了上述线程中描述的每个解决scheme以及以下线程上的所有解决scheme: 在iOS 6.0下呈现UIImagePickerController时出现崩溃以及此处: http : //www.cocos2d-iphone.org/forum/topic/36639 没有解决scheme的工作。 无论是崩溃仍然发生,或login工作正常,我的应用程序然后自由旋转之间的风景和肖像,或locking自己的肖像,并拧了整个用户界面。 我想要的是GameCenterlogin工作在纵向,然后在应用程序中的其他一切发生在横向。 这里是我的应用程序中包含的所有旋转方法。 这些是来自appdelegate.m中的myNavigationController实现的: -(NSUInteger)supportedInterfaceOrientations { // iPhone only if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ) return UIInterfaceOrientationMaskLandscape; // iPad only return UIInterfaceOrientationMaskLandscape; } – (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // iPhone only if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone ) return UIInterfaceOrientationIsLandscape(interfaceOrientation); // iPad only // […]