cocos2dx-触摸事件

时间:2023-03-08 20:59:33
 //创建一个精灵
Sprite *spriteTest = Sprite::create("1.png");
spriteTest->setPosition(Point(,));
this->addChild(spriteTest);
//创建一个单点触摸事件监听
auto listener = EventListenerTouchOneByOne::create();
//向下传递触摸
listener->setSwallowTouches(true);
//触摸回调
listener->onTouchBegan = [](Touch *touch,Event *event)
{
auto target = event->getCurrentTarget();
Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size size = target->getContentSize();
Rect rect = Rect(, , size.width, size.height);
if (rect.containsPoint(locationInNode)) {
CCLOG("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
target->setOpacity();
return true;
}
return false;
}; listener->onTouchMoved = [](Touch *touch,Event *event)
{
auto target = event->getCurrentTarget();
target->setPosition(target->getPosition()+touch->getDelta());
}; listener->onTouchEnded = [](Touch *touch,Event *event)
{
auto target = event->getCurrentTarget();
target->setOpacity();
}; _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, spriteTest);