cocos2dx Sprite 添加点点击事件 node

Sprite node  添加点点击事件

function isTouchMe(target, touch, event, rect) {
    var locationInNode = target.convertToNodeSpace(touch.getLocation());
    var s = target.getContentSize();
    var rect = rect || cc.rect(0, 0, s.width, s.height);
    if (cc.rectContainsPoint(rect, locationInNode)) {
        return true;
    }
    return false;
}
function setOnTouchListener(node, cb) {
    if (!node.getUserData()) {
        node.setUserData({});
    }
    var userData = node.getUserData();
    if (userData.listener)
        cc.eventManager.removeListener(userData.listener)

    userData.listener = cc.EventListener.create({
        event: cc.EventListener.TOUCH_ONE_BY_ONE,
        swallowTouches: true,
        onTouchBegan: function(touch, event) {
            if (isTouchMe(node, touch, event)) {
                return true;
            }
            return false;
        },
        onTouchMoved: function(touch, event) {
        },
        onTouchEnded: function(touch, event) {
            if (cb)
                cb();
        },
        onTouchCancelled: function (touch, event) {
        }
    })
    cc.eventManager.addListener(userData.listener, node)
}

猜你喜欢

转载自blog.csdn.net/W_han__/article/details/103746811