我正在創建一個通用應用程序,我的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