我正在创建一个通用应用程序,我的CCMenu在iPhone,iPhone 4和iPad上都显得很好。但是,在iPad上触摸时按钮不会执行任何操作。CCMenu不能在iPad上工作
除修改contentScaling属性外,我没有特定的iPad代码,因此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;
}
您是否使高分辨率图像有效?如果是 - 请发布答案如何去做 – Andrew 2011-03-05 21:29:48