Hi there
I want to port the “cocos2d for iPhon” code.
CCMenuItemImage item2 = ;
But, it includes “sender”.
I don’t know how to use in cocos2d-x
I ported like this. however I must add new function.
So, I think it is not good way.
Must I use lambda function?
CCMenuItemImageitem2 = CCMenuItemImage::create(“NormalButtonImage.png”, “SelectedButtonImage.png”, “DisabledButtonImage.png”, this, menu_selector(NewScene::startItemImageCCLOG));
void NewScene::startItemImageCCLOG()
{
CCLOG (“CCMenuItemImage selected.”);
}
When you use menu_selector the selector must have ha CCObject as parameter;
bool HelloWorld::init() {
CCMenu * mainMenu = CCMenu::create();
mainMenu -> setPosition( CCPointZero );
this -> addChild( mainMenu );
CCMenuItemImage * buttonMessage = CCMenuItemImage::create( "button_0.png", "button_1.png", this, menu_selector( HelloWorld::doShowMessage ) );
buttonMessage -> setPosition( CCPointMake( 100, 100 ) );
mainMenu -> addChild( buttonMessage );
return true;
}
void HelloWorld::doShowMessage( CCObject * p_Sender ) {
CCMenuItemImage * button = ( CCMenuItemImage * ) p_Sender;
button -> setVisible( false );
CCLOG( "button is hidden." );
}
Thank you for replying
I didn’t know CCObject requires.
however I want to know is how to not use menu_selector
I wrote like JavaScript
bool HelloWorld::init() {
CCMenu * mainMenu = CCMenu::create();
mainMenu > setPosition;
this> addChild( mainMenu );
CCMenuItemImage * buttonMessage = CCMenuItemImage::create( “button_0.png”, “button_1.png”, this, function(CCObject * p_Sender) {
CCMenuItemImage * button = ( CCMenuItemImage * ) p_Sender;
button > setVisible;
CCLOG;
}
);
buttonMessage> setPosition( CCPointMake( 100, 100 ) );
mainMenu -> addChild( buttonMessage );
return true;
}
I don’t think that is possible using C++.
I see.
So, I must add a function by sender added?