iPhone中的断言错误适用于通用游戏(Cocos2d+Objective-C),仅适用于iPad模拟器



我正在iPhone中使用Cocos2d和Objective-C创建一个通用游戏。我的项目几乎完成了我在控制台窗口的运行时收到此错误

对于iPhone 4.3模拟器和iPhone(Retina),游戏运行良好

只有当我选择"iPad"模拟器执行时,才会出现此错误

有什么想法吗?我真的很困惑。。提前感谢!

2012-04-02 13:35:55.409 David and Goliath[35671:1803] cocos2d: CCTextureCache: removing unused texture: David_Goliath_Menu-ipad.png
[Switching to process 35671 thread 0x1803]
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: WARNING: Image (4096 x 1024) is bigger than the supported 2048 x 2048
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: Couldn't add image:Day_2048_768_MOUNTAINS_IPad.png in CCTextureCache
2012-04-02 13:35:56.411 David and Goliath[35671:1803] *** Assertion failure in -[ActionLayer addChild:z:], /Users/sumitghosh/Desktop/David and Goliath Ipad 2/libs/cocos2d/CCNode.m:390
2012-04-02 13:35:56.412 David and Goliath[35671:1803] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x018b15a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x021ff313 objc_exception_throw + 44
    2   CoreFoundation                      0x01869ef8 +[NSException raise:format:arguments:] + 136
    3   Foundation                          0x005c13bb -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116
    4   David and Goliath                   0x000e3fa8 -[CCNode addChild:z:] + 200
    5   David and Goliath                   0x0002d94b -[ActionLayer setBackground] + 1947
    6   David and Goliath                   0x00038454 -[ActionLayer init] + 2356
    7   David and Goliath                   0x000396ae -[ActionScene init] + 158
    8   David and Goliath                   0x000036f6 -[David_and_GoliathAppDelegate loadScenes] + 598
    9   David and Goliath                   0x00005c7b -[LoadingLayer loadScenes:] + 187
    10  CoreFoundation                      0x01821c7d __invoking___ + 29
    11  CoreFoundation                      0x01821b51 -[NSInvocation invoke] + 145
    12  Foundation                          0x005e8495 -[NSInvocationOperation main] + 51
    13  Foundation                          0x00556b76 -[__NSOperationInternal start] + 747
    14  Foundation                          0x005567ca ____startOperations_block_invoke_2 + 106
    15  libdispatch_sim.dylib               0x02514289 _dispatch_call_block_and_release + 16
    16  libdispatch_sim.dylib               0x0251758a _dispatch_worker_thread2 + 252
    17  libSystem.B.dylib                   0x97fda781 _pthread_wqthread + 390
    18  libSystem.B.dylib                   0x97fda5c6 start_wqthread + 30
)
terminate called after throwing an instance of 'NSException'
[Switching to process 35671 thread 0x207]
Current language:  auto; currently objective-c
kill
quit
Program ended with exit code: 0
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: WARNING: Image (4096 x 1024) is bigger than the supported 2048 x 2048
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: Couldn't add image:Day_2048_768_MOUNTAINS_IPad.png in CCTextureCache
2012-04-02 13:35:56.411 David and Goliath[35671:1803] *** Assertion failure in -[ActionLayer addChild:z:], /Users/sumitghosh/Desktop/David and Goliath Ipad 2/libs/cocos2d/CCNode.m:390
2012-04-02 13:35:56.412 David and Goliath[35671:1803] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil'

它告诉你这里的问题。您试图加载的图像超出了iPad所能支持的最大尺寸,因此cocos2d无法加载。当您尝试将其添加为CCSprite时,会触发一个未处理的NSInternalInconsistencyException(因为节点是nil),这会导致您的应用程序终止。

对于iPad,您需要使用较小的图像。

最新更新