为什么我学着敲得触摸事件,没有反应的?

#include “MainGame.h”

MainGame::MainGame(void)
{
}

MainGame::~MainGame(void)
{
Director::getInstance()->getEventDispatcher()->removeEventListener(m_listener);
Director::getInstance()->getEventDispatcher()->removeEventListener(m_touchListener);
}

Scene * MainGame::createScene()
{
auto scene = Scene::create();
auto layer = MainGame::create();
scene->addChild(layer);
return scene;
}

bool MainGame::init()
{
if(!Layer::init())
return false;

m_size = Director::getInstance()->getWinSize();

//添加地图层
auto background = Background::create();
this->addChild(background);
//添加android返回键的监听器
m_listener = EventListenerKeyboard::create();
m_listener->onKeyReleased = CC_CALLBACK_2(MainGame::onKeyReleased,this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(m_listener,this);

//add Car
//加载缓存文件
SpriteFrameCache::getInstance()->addSpriteFramesWithFile(“Player.plist”);

m_player = Player::create();
m_player->setPosition(Vec2(m_size.width/2, m_size.height*0.15));
this->addChild(m_player);
/auto MyFone = Sprite::create(“MyFone.png”);
MyFone->setTag(110);
MyFone->setPosition(Vec2(320, 80));
this->addChild(MyFone);
/
auto turnRight = Sprite::create(“turnRight.png”);
turnRight->setTag(200);
turnRight->setPosition(Director::getInstance()->convertToGL(Vec2(600, 800)));
this->addChild(turnRight);

auto turnLeft = Sprite::create(“turnLeft.png”);
turnLeft->setTag(300);
turnLeft->setPosition(Director::getInstance()->convertToGL(Vec2(40, 800)));
this->addChild(turnLeft);

m_touchListener = EventListenerTouchOneByOne::create();
m_touchListener->onTouchBegan = CC_CALLBACK_2(MainGame::onTouchBegan,this);
m_touchListener->onTouchMoved = CC_CALLBACK_2(MainGame::onTouchMoved,this);
m_touchListener->setSwallowTouches(true);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(m_touchListener,this);
return true;
}

void MainGame::onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent)
{
//切换到开始游戏场景
Director::getInstance()->replaceScene(StartGame::createScene());
}

bool MainGame::onTouchBegan(Touch * touch,Event * pEvent)
{
auto point = touch->getLocation();
auto rect = m_player->getBoundingBox();
if(rect.containsPoint(point))
return true;

return false;
}
void MainGame::onTouchMoved(Touch * touch,Event * pEvent)
{
auto addPoint = touch->getLocation()-touch->getPreviousLocation();
m_player->setPosition(m_player->getPosition()+addPoint);

auto size = m_player->getContentSize();

if(m_player->getPositionX() < size.width/2)
{
m_player->setPositionX(size.width/2);
}
else if(m_player->getPositionX() > m_size.width-size.width/2)
{
m_player->setPositionX(m_size.width-size.width/2);
}

if(m_player->getPositionY() < size.height/2)
{
m_player->setPositionY(size.height/2);
}
else if(m_player->getPositionY() > m_size.height-size.height/2)
{
m_player->setPositionY(m_size.height-size.height/2);
}
}

#ifndef MAIN_GAMES_H
#define MAIN_GAMES_H
#include “cocos2d.h”
//包含地图层
#include “Background.h”
//开始游戏场景
#include “StartGame.h”
#include “Player.h”

USING_NS_CC;

//游戏主场景
class MainGame : public Layer

{
public:
MainGame(void);
~MainGame(void);
public:
static Scene * createScene();
bool init();
CREATE_FUNC(MainGame);
public:
//对返回键的监听函数
void onKeyReleased(EventKeyboard::KeyCode keyCode,Event * pEvent);

//触摸控制的监听函数
bool onTouchBegan(Touch* touch, Event* pEvent);//点击开始事件响应函数
void onTouchMoved(Touch *touch, Event *pEvent);//点击移动事件响应函数
private:
EventListenerKeyboard * m_listener;
EventListenerTouchOneByOne * m_touchListener;

Size m_size;
Player * m_player;
};
#endif

求大神帮忙

打log出来看下,是不是这个地方没有符合条件

if(rect.containsPoint(point))
return true;

貌似是连事件都没有进去

:12:代码高亮一下啊 好难看啊

连touch事件也进不去,为什么这样的?求解

//绑定触摸事件
void HelloWorld::addTouches(){
    auto dispatcher = Director::getInstance()->getEventDispatcher();
    auto listener = EventListenerTouchAllAtOnce::create();
    listener->onTouchesEnded = CC_CALLBACK_2(HelloWorld::onTouchesEnded, this);
    listener->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);
    listener->onTouchesMoved = CC_CALLBACK_2(HelloWorld::onTouchesMoved, this);
    dispatcher->addEventListenerWithSceneGraphPriority(listener, this);
}
```

这个我写的,好像跟你没有区别
可以参考下这里http://cn.cocos2d-x.org/tutorial/show?id=76