gpt4 book ai didi

c++ - COCOS 2dx无法获取touches?

转载 作者:行者123 更新时间:2023-11-28 07:01:43 28 4
gpt4 key购买 nike

下面是我的 HelloWorld.h 类:

class HelloWorld : public cocos2d::CCLayer
{
public:
HelloWorld();

// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();

b2World* world;

// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::CCScene* scene();

// a selector callback
void menuCloseCallback(CCObject* pSender);

// implement the "static node()" method manually
CREATE_FUNC(HelloWorld);

virtual void draw();
virtual void ccTouchesEnded(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
virtual void ccTouchesMoved(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
virtual void ccTouchesBegan(cocos2d::CCSet* touches, cocos2d::CCEvent* event);
void update(float dt);


};

在我的 HelloWorld.cpp 类中,我已经初始化了我的 init 方法

bool HelloWorld::init(){
setTouchEnabled( true );
setAccelerometerEnabled( true );
scheduleUpdate();
CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
return true;
}

这段代码现在对我有用了! :)

最佳答案

Targeted Delegate 用于单点触摸事件。将您的事件更改为如下内容:

虚拟 bool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent)

您可以在此 Link 阅读有关 Cocos2D 文档的 iPhone 端目标和标准触摸委托(delegate)的更多信息

按照下面在我的初始化方法中编写委托(delegate)解决了问题

    CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this, 1);

关于c++ - COCOS 2dx无法获取touches?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22360708/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com