gpt4 book ai didi

c++ - Cocos2d-x 3.0 onTouchMoved 无法运行

转载 作者:行者123 更新时间:2023-11-30 01:52:53 25 4
gpt4 key购买 nike

我正在尝试让触摸事件在我的游戏中正常工作,而 onTouchDown 工作得很好。我的问题出现在 onTouchMoved 上,因为尽管它在编译过程中没有给我任何错误,但它似乎不起作用。 我似乎找不到任何对这种情况有帮助的文档,而且我在网上找到的大多数方法似乎也不起作用。

我的代码:LevelOneScene.h

class LevelOneScene : public cocos2d::Layer
{
public:
// there's no 'id' in cpp, so we recommend returning the class instance pointer
static cocos2d::Scene* createScene();

// Here's a difference. Method 'init' in cocos2d-x returns bool, instead of returning 'id' in cocos2d-iphone
virtual bool init();
void update(float dt);
// a selector callback
//void menuCloseCallback(cocos2d::Ref* pSender);
void changeScene(cocos2d::Ref* pSender);

//Screen Data
Point origin;
Size visibleSize;



//add Spirtes
void addShip();
Ship* ship;
void addBackground();
Sprite* background;
bool onTap(Touch* touch,
Event* touchEvent);
// implement the "static create()" method manually
CREATE_FUNC(LevelOneScene);
private:
virtual void onEnter();
virtual void onExit();
void onTouchMoved(Touch* touch,
Event* touchEvent);};

LevelOneScene.cpp

bool LevelOneScene::onTap(Touch* touch,
Event* touchEvent)
{

CCLOG("Screen was Tapped");
return 0;

}
void LevelOneScene::onTouchMoved(Touch* touch,
Event* touchEvent)
{
CCLOG("Touch Moved\n");
ship->stopAllActions();
auto moveLeft = cocos2d::MoveTo::create(.5, cocos2d::Point(touch->getLocation().x,ship->getPositionY()));
ship->runAction(moveLeft);

}
void LevelOneScene::update(float dt)
{

}
void LevelOneScene::onExit()
{
Layer::onExit();
}
void LevelOneScene::onEnter()
{
Layer::onEnter();
auto touchListener = EventListenerTouchOneByOne::create();
touchListener->setSwallowTouches(true);
touchListener->onTouchBegan = CC_CALLBACK_2(LevelOneScene::onTap, this);

touchListener->onTouchMoved = CC_CALLBACK_2(LevelOneScene::onTouchMoved, this);

_eventDispatcher->addEventListenerWithFixedPriority(touchListener, -1);
}

最佳答案

解决方法是在onTouchBegan方法结束时返回true

我遇到了同样的问题:只有 onTouchBegan 会触发,但不会触发 onTouchMoved 或任何其他问题。我猜它是触摸事件是否继续传播的 bool 值,类似于 jQuery 中的事件结构。

关于c++ - Cocos2d-x 3.0 onTouchMoved 无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23861154/

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