您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx-触摸事件

2016-01-01 15:51 323 查看
//创建一个精灵
Sprite *spriteTest = Sprite::create("1.png");
spriteTest->setPosition(Point(100,100));
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(0, 0, size.width, size.height);
if (rect.containsPoint(locationInNode)) {
CCLOG("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
target->setOpacity(180);
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(255);
};

_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, spriteTest);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: