我有一个使用cocos2D进行迷你游戏的应用程序。 当我按下按钮时,我会在游戏中启动cocos2D场景。
我尝试在cocos2D场景中加载背景(bg.png)中的图像。我正在使用精灵。
适用于iPhone 5和iPhone 4S(iOS 6),但它不适用于iPhone 4。 在iPhone 4上我有一个黑屏。我不明白为什么。
sprites-hd.png确实是3762×1252,1,4 Mo.它对iPhone 4来说太大了吗?
在我的GameViewController_iPhone.m中:
-(IBAction) playGame {
CCDirector *director = [CCDirector sharedDirector];
CCGLView *glView = [CCGLView viewWithFrame:[[ISAMAppDelegate_iPhone sharedISAMAppDelegate].window bounds]
pixelFormat:kEAGLColorFormatRGB565 // kEAGLColorFormatRGBA8
depthFormat:0 // GL_DEPTH_COMPONENT16_OES
];
// attach the openglView to the director
[director setView:glView];
if( ! [director enableRetinaDisplay:YES] )
MyLog(@"Retina Display Not supported");
[[CCDirector sharedDirector] setAnimationInterval:1.0/60];
[CCTexture2D setDefaultAlphaPixelFormat:kCCTexture2DPixelFormat_RGBA8888];
[self.view addSubview:glView];
[[CCDirector sharedDirector] runWithScene:[Game sceneWithGameViewController:self]];
}
在我的Game.m中:
+ (CCScene *)sceneWithGameViewController:(GameViewController_iPhone*) gvc
{
CCScene *game = [CCScene node];
Game *layer = [[Game alloc] initWithGameViewController:gvc];
[game addChild:layer];
return game;
}
- (id) initWithGameViewController:(GameViewController_iPhone*) gvc {
if(![super init]) return nil;
if((self = [super init])) {
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"sprites.plist"];
CCSpriteBatchNode* batchNode = [CCSpriteBatchNode batchNodeWithFile:@"sprites.png" capacity:50];
[self addChild:batchNode];
CCSprite *someSprite = [CCSprite spriteWithSpriteFrameName:@"bg.png"];
[batchNode addChild:someSprite];
}
}
答案 0 :(得分:3)
您无法在iPhone 4中加载大于2048x2048的纹理,因此您可以拆分当前的精灵地图集。