Я создаю универсальное приложение, и мое CCMenu прекрасно работает как на iPhone, так и на iPhone 4 и iPad.Однако при нажатии на iPad кнопки ничего не делают.
У меня нет специального кода iPad, кроме изменения свойства contentScaling, чтобы iPad использовал те же изображения, что и iPhone 4. Это означает, что те же изображения работают наiPhone 4, но не на iPad.
Я использую cocos2d 0.99.rc0 и iOS 4.1 SDK.Я даже не знаю, с чего начать устранение неполадок.
Единственная странность, которую я недавно заметил, заключается в том, что iPad, кажется, рисует сцену меню один раз, а затем быстро перерисовывает ее по некоторым причинам, перемещая все на один пиксель или что-то еще.,Мой класс меню очень прост и не имеет «обновляющего» кода или чего-либо, что должно быть перемещено.Это не происходит на iPhone с низким или высоким разрешением.
Вот мой код, небрежный, но все же очень простой.
MainMenu.m:
CCMenuItemImage * playItem = [self makeMenuButtonWithSprite:@"Play.png" withSelector:@selector(play:)];
CCMenuItemImage * resumeItem = [self makeMenuButtonWithSprite:@"Resume.png" withSelector:@selector(resume:)];
CCMenuItemImage * optionsItem = [self makeMenuButtonWithSprite:@"Options.png" withSelector:@selector(options:)];
CCMenuItemImage * helpItem = [self makeMenuButtonWithSprite:@"Help.png" withSelector:@selector(help:)];
CCMenu *myMenu;
// Check if there is a valid savegame by comparing versions.
if ([[uD stringForKey:@"CFBundleVersion"] isEqualToString:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] ) {
myMenu = [CCMenu menuWithItems:playItem, resumeItem, optionsItem, helpItem, nil];
} else {
myMenu = [CCMenu menuWithItems:playItem, optionsItem, helpItem, nil];
}
// Arrange the menu items vertically
[myMenu alignItemsVerticallyWithPadding:0.0f];
myMenu.position = ccp(dB.wWidth/2,dB.wHeight/2);
// add the menu to your scene
[self addChild:myMenu z:100];
И CCMenuItemImageфабрика:
- (CCMenuItemImage *)makeMenuButtonWithSprite:(NSString *)spriteFileName withSelector:(SEL)selector {
CCSprite *spriteForButton = [CCSprite spriteWithFile:spriteFileName];
spriteForButton.anchorPoint = ccp(0.5f,0.5f);
CCMenuItemImage * buttonImage =[CCMenuItemImage itemFromNormalImage:@"button.png"
selectedImage: @"button.png"
target:self
selector:selector];
[buttonImage addChild:spriteForButton z:100];
spriteForButton.position = ccp([buttonImage boundingBox].size.width/2,([buttonImage boundingBox].size.height/2)-5);
return buttonImage;
}