我正在尝试创建一个从基类 CCMenuItemImage 派生的按钮。我希望这个按钮能够在第一次触摸时而不是在触摸结束后调用它的功能。但是,尝试子类化时,我收到一条错误消息,指出这是一个无效的转换。
按钮.ccp:
#include "button.h"
void Button::selected(){
CCLOG("SELECTED");
}
void Button::unselected(){
CCLOG("UNSELECTED");
}
Button* Button::create(const char *normalImage, const char *selectedImage, const char *disabledImage, CCObject* target, SEL_MenuHandler selector) {
Button *button = new Button();
if (button && button->initWithNormalImage(normalImage, selectedImage, disabledImage, NULL, NULL))
{
button->autorelease();
return button;
}
CC_SAFE_DELETE(button);
return NULL;
}
按钮.h:
#ifndef BUTTON_H
#define BUTTON_H
#include "cocos2d.h"
class Button : public cocos2d::CCMenuItemImage{
public:
virtual void selected();
virtual void unselected();
};
#endif
SinglePlayer.ccp 片:
Button *left1 = Button::create("turncircle.png","turncircle.png", this, menu_selector(SinglePlayer::turning));
最佳答案
MenuItem select() 默认在触摸完成时触发。
您需要使用向调度程序注册的 Touch 子类化 CCSprite 并覆盖 ccTouchBegan
关于c++ - Cocos2d-x 子类化问题 CCMenuItemImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943498/