3

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

对于 iPhone4.3 模拟器和 iPhone (Retina),Game 运行良好。

仅当我选择“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
4

1 回答 1

1
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 无法加载它。当您尝试将其添加为 a 时,CCSprite您会触发非手动NSInternalInconsistencyException操作(因为节点是nil),这会导致您的应用程序终止。

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

于 2012-04-02T09:47:41.523 回答