3.0-final中的js-moonwarriors的触摸判断的小问题

在GameLayer的init函数里面添加touch的listener时,用的是下面的代码,实际上只处理了一个点,用cocos命令行打包成apk在手机上面跑的时候,
导致触摸没有响应。

            if (cc.sys.capabilities.hasOwnProperty('touches')){
                cc.eventManager.addListener({
                    prevTouchId: -1,
                    event: cc.EventListener.TOUCH_ALL_AT_ONCE,
                    onTouchesMoved:function (touches, event) {
                        var touch = touches;
                        if (this.prevTouchId != touch.getId())
                            this.prevTouchId = touch.getId();
                        else event.getCurrentTarget().processEvent(touches);
                    }
                }, this);
            }

```



后来看了js-test里面的代码里面处理TOUCH_ALL_AT_ONCE是这样处理的:


    onTouchesMoved:function(touches, event) {
        var target = event.getCurrentTarget();
        for (var i=0; i < touches.length;i++ ) {
            var touch = touches*;
            var pos = touch.getLocation();
            var id = touch.getId();
            cc.log("Touch #" + i + ". onTouchesMoved at: " + pos.x + " " + pos.y + " Id:" + id);
            target.update_id(id, pos);
        }
    },

```



手动尝试给moonwarriors加了一个循环判断再打包就可以用触摸移动飞船了。
之前一直都是参考moonwarriors来写代码,结果找了很久的问题,才发现解决方案在js-test里面:869:
看来以后还是优先看test的例子好一点Orz


ps:
另外给同样要弄触摸事件的同学提醒一下,TOUCH_ALL_AT_ONCE和TOUCH_ONE_BY_ONE两种事件的名称,一个有复数(onTouchesXXX),一个是没有复数的(onTouchXXX)。


*

好帖,必须顶啊。学习了。:870: