最近自己在做的一个小程序想加上一个选择颜色的功能。
大概的设想呢就是一共有七种颜色可以选择,最少选择两种,最多都选。大概就是类似于一个复选框的东西吧。
初步的实现呢就是每种颜色的选择就是一个CCMenuItemToggle,选中状态是一个图片,非选中状态是另一个图片。
大概的代码呢如下:
*.h
@interface Layer :CCLayer {
}
@property(retain,nonatomic)CCMenuItemToggle * colorMenuToggle;
+(id)sense;
@end
*.m
int colorIndex;
@implement Layer
@synthesize colorMenuToggle;
+(id)sense
{
CCScene * scene = [CCScene init];
id layer = [Layer node];
[scene addChild:layer];
return sense;
}
-(id)init
{
if(self =[super init])
{
CCMenuItemImage * choiceButton =
[CCMenuItemImageitemFromNormalImage:@"choice.png"selectedImage:nil target:nilselector:nil];
CCMenuItemImage * choiceButton2 =
[CCMenuItemImageitemFromNormalImage:@"choice2.png"selectedImage:nil target:nilselector:nil];
self.colorMenuToggle =
[CCMenuItemToggleitemWithTarget:selfselector:@selector(choice:)items:choiceButton,choiceButton2,nil];
CCMenu *toggleMenu = [CCMenumenuWithItems:self.colorMenuToggle,nil];
toggleMenu.position =ccp(100, 220);
[selfaddChild:toggleMenu];
}
return self;
}
-(void)choice:(id)sender
{
if(colorIndex==1)
{
[self.colorMenuTogglesetSelectedIndex:0];
colorIndex = 0;
}
else
{
[self.colorMenuTogglesetSelectedIndex:1];
colorIndex = 1;
}
}
@end
CCMenuItemToggle的items有几个index才有几个,例如items就有一个那index只能等于0,如果是两个item,那index有0跟1两值,以此类推。