CCMenuItemSprite 如何更改sprite 图片
2012-12-01 01:45
537 查看
============================================================博文原创,转载请声明出处电子咖啡(原id蓝岩)============================================================
在cocos2d的游戏设置见面中,要添加控制声音开关的按钮,我的button使用CCMenuItemSprite来时显得,当开启声音时候,显示A图片,关闭时候显示B图片,这就需要修改CCMenuItemSprite的图片,方法如下:
在创建menu的时候,这只一种图片
CCSprite* audion= [CCSprite spriteWithSpriteFrameName:@"button_audio.png"];
CCSprite*audios= [CCSprite spriteWithSpriteFrameName:@"button_audio.png"];
CCMenuItemSprite* audiosa=[CCMenuItemSprite itemFromNormalSprite:audion selectedSprite:audios target:self selector:@selector(audio:)];-----
注意,在创建CCMenuItemSprite的时候,必须创建你两个CCSprite,否则会出现一下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'child already added. It can't be added again'
----
点击按钮,会触发 audio:函数,此函数定义如下:
-(void)audio:(id)sender{
NSLog(@"send:%@",sender);
CCMenuItemSprite* i=(CCMenuItemSprite*)sender;
CCSprite* audion= [CCSprite spriteWithSpriteFrameName:@"button_audio_bar.png"];
CCSprite* audios= [CCSprite spriteWithSpriteFrameName:@"button_audio_bar.png"];
i.normalImage = audion;
i.selectedImage=audios;
}
这里我们拿到的sender是CCMenuItemSprite,转换后可以设置其normalImage,selectedImage来实现图片的修改。
其实normalImage并不是严格意义上的图片,而是 CCNode<CCRGBAProtocol>的子类,所以我们可以将其设置为CCSprite。
在cocos2d的游戏设置见面中,要添加控制声音开关的按钮,我的button使用CCMenuItemSprite来时显得,当开启声音时候,显示A图片,关闭时候显示B图片,这就需要修改CCMenuItemSprite的图片,方法如下:
在创建menu的时候,这只一种图片
CCSprite* audion= [CCSprite spriteWithSpriteFrameName:@"button_audio.png"];
CCSprite*audios= [CCSprite spriteWithSpriteFrameName:@"button_audio.png"];
CCMenuItemSprite* audiosa=[CCMenuItemSprite itemFromNormalSprite:audion selectedSprite:audios target:self selector:@selector(audio:)];-----
注意,在创建CCMenuItemSprite的时候,必须创建你两个CCSprite,否则会出现一下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'child already added. It can't be added again'
----
点击按钮,会触发 audio:函数,此函数定义如下:
-(void)audio:(id)sender{
NSLog(@"send:%@",sender);
CCMenuItemSprite* i=(CCMenuItemSprite*)sender;
CCSprite* audion= [CCSprite spriteWithSpriteFrameName:@"button_audio_bar.png"];
CCSprite* audios= [CCSprite spriteWithSpriteFrameName:@"button_audio_bar.png"];
i.normalImage = audion;
i.selectedImage=audios;
}
这里我们拿到的sender是CCMenuItemSprite,转换后可以设置其normalImage,selectedImage来实现图片的修改。
其实normalImage并不是严格意义上的图片,而是 CCNode<CCRGBAProtocol>的子类,所以我们可以将其设置为CCSprite。
相关文章推荐
- Cocos2d-x CCMenuItemSprite按钮图片旋转问题
- CCMenuItemSprite 换按钮图片用initWithNormalSprite
- 1.cocos2dx之Menu(CCMenuItemFont,CCMenuItemImage,CCMenuItemLabel,CCMenuItemSprite,CCMenuItemToggle)
- cocos2d-x CCmenuSpriteItem 用getChildByTag()获取;
- CCMenuItemImage 让按钮被点击时显示另一张图片(cocos2d-x基础)
- CCMenuItemSprite ---CCMenuItemImage::create无法显示全部菜单项的解决办法![待续]
- 非常方便的CCMenuItemSprite
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- cocos2d-x ——菜单层(CCMenuItemSprite)三
- cocos2d-x TestLua 之 CCMenuItemLabel CCMenuItemSprite CCMenuItemFont 菜单类
- 给CCMenuItemFont 加上背景图片
- cocos2d-x 开关按钮 三态按钮 的实现 CCMenuItemToggle
- cocos2d-x ——菜单层(CCMenuItemFont)二
- cocos2D(八)---- CCMenu && CCMenuItem
- 八、(转)M了个J CCMenu和CCMenuItem
- CCMenuItemToggle
- 关于如何通过json更改背景图片
- ListView 的Item更改背景图片
- cocox2d-x CCMenuItemFon
- CCMenuItemToggle的使用