这两种功能的实现方式有什么差别

人物向前走方向键只需要按一下,然后按住不放就向前走了,
人物向前跑方向键需要快速按两下,然后按住不放就向前跑了,
这两种功能的实现有什么差别呢?

处理短时间连续两次按下标记不就出来了

不知道该怎么处理短时间连续两次按下标记,修改后依然不行,有没人知道具体该怎么修改的?我将demo文件上传,
demo.rar (532.8 KB)

每次按的时候记录时间。再次按的时候用当前时间减去记录时间,例如小于0.5秒就代表跑。

你这个名字错了吧?应该是这样吧:
let MyWife = new PairOfHands(); :rofl:

只有没媳妇的人才需要。

这样么,我是xx公安局,你涉嫌重婚罪,请跟我回局协助调查 :upside_down_face:

我怀疑你在开车

只有没媳妇的人才会想要两个媳妇,不是有媳妇的一个都不想要吗

    role: cc.Node

    shortInterval = 0.5;

    // 这个函数指针值要么是 walk, 要么是 run
    // walk 一定是初值或者 touch 间隔超过了 shortInterval
    // run 一定是 touch 之后, 并且时间未超过 shortInterval
    touchCallback = this.walk

    onLoad() {
        this.role.on(cc.Node.EventType.TOUCH_START, this.onTouchStart, this);
    }

    onTouchStart() {
        // 执行 touch 回调
        this.touchCallback();

        // 一旦 touch 回调就变成了 run
        this.touchCallback = this.run;

        // 为了防止连点开启多个 backTouchCallback 的计时器, 每次取消旧的计时器
        this.unschedule(this.backTouchCallback);

        // 开启一个短时间的计时器,到时间后回调就会被恢复 walk
        this.scheduleOnce(this.backTouchCallback, this.shortInterval);
    }

    // 回调恢复成 walk
    backTouchCallback() {
        this.touchCallback = this.walk;
    }

    walk() {
        // 判断下角色状态不是走才切成走
    }

    run() {
        // 判断下角色状态不是跑才切成跑
    }

c++的我不知道怎么写,这个是我 ts 版的思路