Situation: I'm using [(CCMenu*)myMenu alignItemsVerticallyWithPadding:4.0f] to layout several buttons (CCMenuItemSprite) vertically. On non-retina device the padding appears as expected, but when in retina mode on simulator the padding seems to be doubled. Any ideas as to why?
Code:
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: I'd hate to do something like this but I will if no better solution exists:
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];
Solved:
The padding problem was created by a setting in TexturePacker. I had 'inner padding' set to a value of 4px. Removing the setting fixed the problem. See screenshot below: