Ситуация: Я использую [(CCMenu *) MyMenu alignItemsVerticallyWithPadding: 4.0f] макет несколько кнопок (CCMenuItemSprite) по вертикали. На устройстве без сетчатки отступы выглядят так, как ожидалось, но когда в режиме сетчатки на симуляторе отступы, похоже, удваиваются. Есть идеи о том, почему?cocos2d CCMenu обивка странно на сетчатке устройства
Код:
CCMenuItemSprite *itemPlay = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:@"play.png"] selectedSprite:nil target:self selector:@selector(goPlay:)];
CCMenuItemSprite *itemHowto = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:@"howto.png"] selectedSprite:nil target:self selector:@selector(goHowto:)];
CCMenuItemSprite *itemSettings = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:@"settings.png"] selectedSprite:nil target:self selector:@selector(goSettings:)];
CCMenuItemSprite *itemHelp = [CCMenuItemSprite itemFromNormalSprite:[CCSprite spriteWithSpriteFrameName:@"help.png"] selectedSprite:nil target:self selector:@selector(goHelp:)];
CCMenu *myMenu = [CCMenu menuWithItems:itemPlay,itemHowto,itemSettings,itemHelp, nil];
myMenu.position = ccp(160.0f,216.0f);
[myMenu alignItemsVerticallyWithPadding:4.0f];
[self addChild: myMenu z:10];
Update: Я бы не сделать что-то вроде этого, но я не буду, если не лучшее решение существует:
float padding = 4.0f;
// flag stored in app delegate to know whether we are retina
if([[AppDelegate sharedAppDelegate] isRetina])padding = (2.0f);
CCMenu *myMenu = [CCMenu menuWithItems:itemPlay,itemHowto,itemSettings,itemHelp, nil];
myMenu.position = ccp(160.0f,216.0f);
[myMenu alignItemsVerticallyWithPadding:padding];
[self addChild: myMenu z:10];
хорошо, что вы решили его! –