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); 

person jjuser19jj    schedule 18.01.2018    source источник


Ответы (1)


Да, с помощью Cocos Creator вы можете сделать что-то вроде:

this.node.on(cc.Node.EventType.TOUCH_START, this.methodToBeCalled, this);
person Bruno Lopes    schedule 22.01.2018