Последние 3 дня я пытался обновить Cocos2D 1.1.0-pre-> 2.0rc0a , однако это самая трудная задача, с которой я когда-либо сталкивался при создании своего приложения. Так что в Cocos2D 1.1 все работало нормально, мои изображения загружались, все работало и т. Д. Теперь в 2.0rc0a он просто переходит на черный экран, ДА все мои методы называются!
Вот некоторая информация о коде, который я использую, устройствах, журналах и т. Д. ...
Версия Xcode
1. Xcode version: 4.3.2
Устройства, испытанные на
2. A) Devices: iPhone 4S - 5.0.1 (doesn't work)
B) iPad 3 - 5.1 (doesn't work)
C) iPhone 5.1 simulator (doesn't work)
D) iPad 5.1 simulator (doesn't work)
Мой код
У меня есть класс UIViewController, который содержит CCGLView. Затем у меня есть класс CCLayer, который является всем для реальной игры. Код в классе CCLayer хорош, потому что он работает в Cocos2D 1.1.0-pre, поэтому я опубликую код для класса UIViewController:
- (void)viewDidLoad {
[super viewDidLoad];
// Create an CCGLView with a RGB565 color buffer, and a depth buffer of 0-bits
CCGLView *glView = [CCGLView viewWithFrame:[self.view bounds]
pixelFormat:kEAGLColorFormatRGB565 //kEAGLColorFormatRGBA8
depthFormat:0 //GL_DEPTH_COMPONENT24_OES
preserveBackbuffer:NO
sharegroup:nil
multiSampling:NO
numberOfSamples:0];
director_ = (CCDirectorIOS*) [CCDirector sharedDirector];
director_.wantsFullScreenLayout = YES;
[director_ setDisplayStats:YES];
[director_ setAnimationInterval:1.0/60];
[director_ setView:glView];
[director_ setDelegate:self];
[director_ setProjection:kCCDirectorProjection2D];
[director_ setDepthTest:FALSE];
if(![director_ enableRetinaDisplay:YES])
CCLOG(@"Retina Display Not supported");
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
[CCFileUtils setiPhoneRetinaDisplaySuffix:@"@2x"];
[CCFileUtils setiPadSuffix:@"-72"];
[CCFileUtils setiPadRetinaDisplaySuffix:@"@2x~ipad"];
[CCTexture2D PVRImagesHavePremultipliedAlpha:YES];
[director_ pushScene:[CCSceneGame scene]];
}
Тогда у меня есть базовый метод CCScene в моем классе CCLayer:
+(CCScene *) scene
{
CCScene *scene = [CCScene node];
CCSceneGame *layer = [CCSceneGame node];
[scene addChild:layer];
return scene;
}
Большая часть этого кода также копируется непосредственно из шаблонных проектов. Также у меня есть делегаты, заявленные в .h.
Консольный выход
Это моя тестовая консоль на моем iPhone 4S 5.0.1:
2012-03-31 17:14:54.484 App[56089:707] cocos2d: OS version: 5.0.1 (0x05000100)
2012-03-31 17:14:54.485 App[56089:707] cocos2d: GL_VENDOR: Imagination Technologies
2012-03-31 17:14:54.486 App[56089:707] cocos2d: GL_RENDERER: PowerVR SGX 543
2012-03-31 17:14:54.486 App[56089:707] cocos2d: GL_VERSION: OpenGL ES 2.0 IMGSGX543-63.14.2
2012-03-31 17:14:54.488 App[56089:707] cocos2d: GL_MAX_TEXTURE_SIZE: 4096
2012-03-31 17:14:54.488 App[56089:707] cocos2d: GL_MAX_TEXTURE_UNITS: 8
2012-03-31 17:14:54.489 App[56089:707] cocos2d: GL_MAX_SAMPLES: 4
2012-03-31 17:14:54.489 App[56089:707] cocos2d: GL supports PVRTC: YES
2012-03-31 17:14:54.490 App[56089:707] cocos2d: GL supports BGRA8888 textures: YES
2012-03-31 17:14:54.490 App[56089:707] cocos2d: GL supports NPOT textures: YES
2012-03-31 17:14:54.491 App[56089:707] cocos2d: GL supports discard_framebuffer: YES
2012-03-31 17:14:54.491 App[56089:707] cocos2d: compiled with Profiling Support: NO
2012-03-31 17:14:54.492 App[56089:707] cocos2d: cocos2d v2.0.0-rc0
2012-03-31 17:14:54.493 App[56089:707] cocos2d: Using Director Type:CCDirectorDisplayLink
2012-03-31 17:14:54.745 App[56089:707] cocos2d: CCTexture2D: Using RGBA888 texture since image has no alpha
2012-03-31 17:14:54.891 App[56089:707] cocos2d: CCTexture2D. Can't create Texture. cgImage is nil
2012-03-31 17:14:54.892 App[56089:707] cocos2d: Couldn't add image:particleTexture.png in CCTextureCache
2012-03-31 17:14:54.999 App[56089:707] cocos2d: animation started with frame interval: 60.00
Несколько других пунктов
- Мое приложение - все UIKit, кроме этого представления
- Я показываю UIViewController, где находится CCGLView, выполняя [self addSubview:]; если это имеет какое-то значение
- Я успешно импортировал Cocos2D до такой степени, что у меня нет красных файлов, предупреждений, ошибок, устаревших API и т. Д.
- Мои изображения были изменены, поэтому в нем есть суффиксы, на которые я изменил CCFileUtils в коде. Так оно и есть: @ 2x, -72 и @ 2x ~ ipad
- Я также проверил конструктор интерфейса на наличие каких-то странных вещей, которых нет
Если кто-нибудь знает, что происходит, пожалуйста, дайте мне знать !!!
Спасибо!