![]()
![]()
![]()
![]()
![]()
![]()
请把代码粘贴在这里 ``` 看代码: bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !LayerColor::initWithColor(Color4B(0,255,0,255))) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); //添加自己 auto player = Sprite::create("Player.png"); player->setPosition(ccp(20,visibleSize.height/2)); this->addChild(player); //执行定时器 this->schedule(schedule_selector(HelloWorld::gameLogic), 2); //设置触摸事件 /*this->setTouchEnabled(true);*/ auto _eventDispatcher = Director::getInstance()->getEventDispatcher(); auto touchlistener = EventListenerTouchOneByOne::create(); touchlistener->setSwallowTouches(true); touchlistener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded,this); _eventDispatcher->addEventListenerWithSceneGraphPriority(touchlistener,this); return true; } 运行这段代码之后出现错误: 如果直接this->setTouchEnabled(true);运行这段代码 以下不运行 也不会执行HelloWorld::onTouchEnded()中的方法。这是为什么啊?
额,为什么只有一个onTouchEnded呢
我记得写触摸的时候是写
listener->onTouchBegan = CC_CALLBACK_2(GameStart::onTouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(GameStart::onTouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(GameStart::onTouchEnded, this);
这样的
本人新手,说错请勿见怪
触摸的时候要写onTouchBegan得,它有一个返回值bool,根据这个返回值来判断是否调用onTouchMoved和onTouchEnded。