cocos2d-js | 触摸事件

现在Layer层的onEnter方法里create一个listener,指明事件为单点触摸,然后声明三个触摸事件

​
​
    onEnter : function () {
        this._super();

        var listener = cc.EventListener.create({

            event : cc.EventListener.TOUCH_ONE_BY_ONE,

            //是否吞没事件
            swallowTouches : true,

            onTouchBegan : this.onTouchBegan,
            onTouchMoved : this.onTouchMoved,
            onTouchEnded : this.onTouchEnded,

        });

        cc.eventManager.addListener(listener, this.getChildByTag(123))//123是精灵的tag

    },

​

​

然后实现这三个触摸回调函数

​
​
​
    onTouchBegan : function (touch, event) {
        cc.log("TouchBegan");
        
        //获取点击到的精灵
        var target = event.getCurrentTarget();

        //世界坐标转换为本地坐标
        var locationInNode = target.convertToNodeSpace(touch.getLocation());
        
        //获取精灵大小尺寸
        var size = target.getContentSize();

        //创建精灵的边界
        var rect = cc.rect(0, 0, size.width, size.height);
        
        //判断是否点击到精灵
        if (cc.rectContainsPoint(rect, locationInNode)) {
            cc.log("Touched");
        
            //点击到向下传递,调用onTouchMoved
            return true;
        }

        //没点击到,终止传递
        return false;

    },

    onTouchMoved : function (touch, event) {
        cc.log("TouchMoved");

        //获取点击到的精灵
        var target = event.getCurrentTarget();

        //获取下一帧的点击坐标
        var delta = touch.getDelta();

        //移动精灵
        target.x += delta.x;
        target.y += delta.y;

    },

    onTouchEnded : function (touch, event) {
        
    },

​

​

​

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值