CGSize size = [[CCDirector sharedDirector] winSize];
// 设置CCMenuItemFont的默认属性
[CCMenuItemFont setFontName:@"Helvetica-BoldOblique"];[CCMenuItemFont setFontSize:26];
// 生成几个文字标签并指定它们的选择器
CCMenuItemFont* item1 = [CCMenuItemFont itemFromString:@"Go Back!" target:selfselector:@selector(menuItem1Touched:)];
// 使用已有的精灵生成一个菜单项
CCSprite* normal = [CCSprite spriteWithFile:@"Icon.png"];
normal.color = ccRED;
CCSprite* selected = [CCSprite spriteWithFile:@"Icon.png"];
selected.color = ccGREEN;
CCMenuItemSprite* item2 = [CCMenuItemSprite itemFromNormalSprite:normal
selectedSprite:selected target:self selector:@selector(menuItem2Touched:)];
// 用其它两个菜单项生成一个切换菜单(图片也可以用于切换)
[CCMenuItemFont setFontName:@"STHeitiJ-Light"];
CCMenuItemFont* toggleOn = [CCMenuItemFont itemFromString:@"I'm ON!"];CCMenuItemFont* toggleOff = [CCMenuItemFont itemFromString:@"I'm OFF!"];CCMenuItemToggle* item3 = [CCMenuItemToggle itemWithTarget:selfselector:@selector(menuItem3Touched:) items:toggleOn, toggleOff, nil];
// 用菜单项生成菜单
CCMenu* menu = [CCMenu menuWithItems:item1, item2, item3, nil];menu.position = CGPointMake(size.width / 2, size.height / 2);
[self addChild:menu];
// 排列对齐很重要,这样的话菜单项才不会叠加在同一个位置[menu alignItemsVerticallyWithPadding:40];
把这些代码加进init函数里面直接执行会出错,这是由于你还没有声明3个响应函数!
声明如下3个方法就能成功执行了
- (void)menuItem1Touched:(ccTime)dt {
}
- (void)menuItem2Touched:(ccTime)dt {
}
- (void)menuItem3Touched:(ccTime)dt {
}