Cocos2d JS / Cocos Creator добавляет сенсорный слушатель к определенному узлу

Я хочу перетащить определенный спрайт на ощупь. Интересно, могу ли я добавить прослушиватели событий только к определенному узлу, поэтому мне не нужно проверять, к какому узлу прикоснулись, прежде чем запускать функцию перетаскивания для каждого узла. Следующий код также "срабатывает" при касании за пределами определенного узла.

this.directionDial = new cc.Node()
    this.directionDial.graphics = this.directionDial.addComponent(cc.Graphics)
    this.node.addChild(this.directionDial)
this.directionDial.graphics.lineWidth = 2;
    this.directionDial.graphics.strokeColor = cc.Color.RED;
    this.directionDial.graphics.circle(80, 0, 10);
    this.directionDial.graphics.stroke();

    var _this = this;

    // Touch control 
    cc.eventManager.addListener({
        event: cc.EventListener.TOUCH_ONE_BY_ONE,
        swallowTouches: true,
        onTouchBegan: function (touch, event) {
            //do something
            _this.forceDirection = 1;
            _this.displayDirection()
            return true;
        }
    }, this.directionDial); 

1 ответ

Решение

Да, используя Cocos Creator, вы можете сделать что-то вроде:

this.node.on(cc.Node.EventType.TOUCH_START, this.methodToBeCalled, this);
Другие вопросы по тегам