新人已哭

auto circle = DrawNode::create();
circle->drawCircle(Vec2(visibleSize / 2), 10, 360, 2000, false, Color4F(1.0f, 0, 0, 1.0f));

addChild(circle);

auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = (Touch *t,Event *e){
if (circle->getBoundingBox().containsPoint(t->getLocation()))
circle->runAction(MoveTo::create(1, Point(100,100)));//不知为何点击了那个圈圈也是不移动
circle1->setColor(Color3B(0, 225, 0));//也不换颜色
return false;
};

Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,circle);

估计是在监听那出现了问题但是就是不知怎么解决。。求大神指点

但是如果监听的是labelTTF 却不会出现以上问题,这又是为何。。

因为你点击的那个点,不满足circle->getBoundingBox().containsPoint(t->getLocation())这个条件。

你把circle的位置打印出来,你会发现它的位置是(0,0),并不是你在界面上看到的那个位置.

只是我还没有找到解决的办法……因为你做为新人,估计也比我新不了多少:14:

if (circle->getBoundingBox().containsPoint(t->getLocation())) 这个坐标转换有问题 用converttouchtoNodespace能满足你的需求,而且你用的是圆形的话这样判断并不合理boundingbox是矩形框