使用cc.inputManager.handleTouchesXXX能否模拟触摸屏幕?

这个可行么? 我用了下面代码测试,毫无作用…

 this.scheduleOnce(function() {
        let x = 540;
        let y = 1000;
        let touch = new cc.Touch(x,y,1001);
        touch._setPoint(x,y);
        touch._setPrevPoint(x,y);
        cc.inputManager.handleTouchesBegin([touch]);
        this.scheduleOnce(function() {
            cc.inputManager.handleTouchesEnd([touch]);
        }.bind(this), .1);
    }.bind(this), 2);
1赞

使用随机数不停的实验,模拟点击是可以的.
问题就是不知道世界坐标如何转为 touch 里的 x,y.

需要一个convertTouchToNodeSpaceAR 的反操作

最终…用这个似乎可以.
this.schedule(function () {
let btnNode = cc.find(‘MainMenuCanvas/Scale/TurntablePanelContainer/TurntablePanel/main/BackButton’);
let world = btnNode.parent.convertToWorldSpaceAR(btnNode);

        let x = world.x * cc.view.getScaleX();
        let y = world.y * cc.view.getScaleY();
        let touch = new cc.Touch(x, y, 1001);
        touch._setPoint(x, y);
        touch._setPrevPoint(x, y);
        
        cc.inputManager.handleTouchesBegin([touch]);
        this.scheduleOnce(function () {
            cc.inputManager.handleTouchesEnd([touch]);
        }.bind(this), .1);
    }.bind(this), 1);
1赞

感谢感谢

问一下,楼主这个是在2d还是在creator下实现的模拟触摸屏幕

creator 但是 在cocoscreator2.x下又不行了。
本来为了做自动测试