程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> CCMenuItemSprite 如何更改sprite 圖片

CCMenuItemSprite 如何更改sprite 圖片

編輯:C++入門知識

在cocos2d的游戲設置見面中,要添加控制聲音開關的按鈕,我的button使用CCMenuItemSprite來時顯得,當開啟聲音時候,顯示A圖片,關閉時候顯示B圖片,這就需要修改CCMenuItemSprite的圖片,方法如下:

在創建menu的時候,這只一種圖片

[cpp] 
 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,否則會出現一下錯誤:

[cpp] 
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'child already added. It can't be added again' 


----

點擊按鈕,會觸發 audio:函數,此函數定義如下:

[cpp] 
-(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。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved