Jam*_*nay 6 c++ iphone objective-c cocos2d-iphone cocos2d-x
我正在使用Cocos2d-x并试图检测我的HelloWorld项目中的触摸.虽然我没有运气.
.H
class HelloWorld : public CCLayer{
private:
CCSpriteBatchNode * _batchNode;
CCSprite *_turkey;
virtual void ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
Run Code Online (Sandbox Code Playgroud)
.ccp
void HelloWorld::ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event){
CCLog("this");
}
Run Code Online (Sandbox Code Playgroud)
但问题是,当我点击屏幕时,"这个"永远不会出现在日志中.我在这里失踪了什么?
谢谢!
编辑,
我正在使用本教程. http://www.raywenderlich.com/11338/cocos2d-x-for-ios-and-android-space-game
And*_*rew 20
您必须在CCTouchDispatcher注册才能接收触摸:
在您的init()方法中写这个以接收触摸:
CCTouchDispatcher::sharedDispatcher()->addStandardDelegate(this, 0);
Run Code Online (Sandbox Code Playgroud)
另外,我建议您通过有针对性的触摸委托方法接收触摸事件:
virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);
virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);
Run Code Online (Sandbox Code Playgroud)
为了调用这些方法,您必须向触摸调度程序注册一点不同:
CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, 0, true);
Run Code Online (Sandbox Code Playgroud)
编辑
在新的cocos版本CCTouchDispatcher位于CCDirector:
它应该看起来像这样:
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11243 次 |
| 最近记录: |