CCMenuItemSprite 如何更改sprite 图片

============================================================
博文原创,转载请声明出处
============================================================

在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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值