CCMenuItemSprite не отвечает на прикосновения в iOS8
В моем приложении Cocos2D используется несколько кнопок CCMenuItemSprite (например, кнопка "Назад"). Когда кнопка находится в левой части пейзажной сцены, она не реагирует на прикосновения. Кнопки на правой половине экрана работают нормально. Код для инициализации кнопки прост:
CCSprite *normalSprite = [CCSprite spriteWithFile:@"MenuArrowButtonOblongNormal_iPad.png"];
CCSprite *selectedSprite = [CCSprite spriteWithFile:@"MenuArrowButtonOblongSelected_iPad.png"];
CCMenuItemSprite *backButton = [CCMenuItemSprite itemFromNormalSprite:normalSprite
selectedSprite:selectedSprite
target:self
selector:@selector(returnToOptionsMenu)];
if (screenSizeInPixels.width == 1136.0f) {
[backButton setScaleX:0.9375f];
[backButton setScaleY:0.8322f];
buttonHeight = 0.9f;
}
CCMenu *sceneSelectMenu;
sceneSelectMenu = [CCMenu menuWithItems: backButton,nil];
[sceneSelectMenu alignItemsVerticallyWithPadding:screenSize.height * 0.059f];
[sceneSelectMenu setPosition:ccp(screenSize.width*0.15,
screenSize.height * buttonHeight)];
[self addChild:sceneSelectMenu];
// And finally the back button label
CCLabelTTF *backButtonLabel;
backButtonLabel = [CCLabelTTF labelWithString:NSLocalizedString(@"Back", @"Enables user to exit the current screen and view the previous screen")
fontName:@"Marker Felt"
fontSize:scaledFontSize*1.3];
backButtonLabel.color = ccc3(255,255,255);
[backButtonLabel setAnchorPoint:ccp(0.5,0.5)];
backButtonLabel.position = ccp(screenSize.width * (0.14+labelOffset),
screenSize.height * labelHeight);
[self addChild:backButtonLabel z:2];
Это старое приложение, которое использовало Cocos2D версии 1.1-RC0. Я сделал несколько обновлений этого кода на основе предложенных изменений в обновлении для iPhone 6 и 6+ для cocos2d 2.1. Но это в первую очередь решение проблем разрешения / масштаба.
Если никто не видел эту проблему, можете ли вы предложить, где в cocos2D я мог бы исследовать, чтобы определить, почему касания не обнаруживаются / не реагируют?