0
我有一个类,cocos2d-x是否强制多重继承?
class Ticket : public cocos2d::CCNode, public cocos2d::CCTargetedTouchDelegate { ... };
当我注册触摸事件的节点上使用的正常工作:
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(ticket_, 0, true);
但是,如果我改变我的课,以便它使用组成,而不是继承为CCNode位:
class Ticket : public cocos2d::CCTargetedTouchDelegate {
private:
cocos2d::CCNode* node_;
public:
Ticket() { node_ = new CCNode(); node_->init(); }
cocos2d::CCNode* node() { return node_; }
...
};
然后将以下的打击了一个SIGSEGV 11:
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(ticket_, 0, true);
我已经添加票_-> node()到当前层,但我想知道如果触摸调度器不知道如何不喜欢节点和委托是不同的东西。或者换句话说,触摸调度程序期望节点和代表是同一件事情吗?
因此,简而言之,我的代码在使用多重继承时起作用,但在使用组合时不会发生。没有深入研究框架,谁能说这是真的,还是我错过了一些明显的东西?我正在使用cocos2d-2.1rc0-x-2.1.2
至少在cocos2d-iphone中,touch调度程序与非节点类一起工作。 – LearnCocos2D 2013-05-04 22:32:50