cocos creator从零开发2048(07)-格子触摸移动

编辑scripts/Game.ts,添加MOVE_DISTANCE常量设置能移动的距离。

const DURATION = 0.1
const MOVE_DISTANCE = 10

添加_canTouchMove属性标识当前是否能触摸移动。

private _moving = false
private _canTouchMove = false

添加onTouchMove方法处理触摸移动逻辑。

onTouchMove(event: cc.Event.EventTouch) {
    if (!this._canTouchMove || this._moving) return

    const start = event.getStartLocation()
    const cur = event.getLocation()

    const diff = cur.sub(start)

    if (Math.abs(diff.x) > Math.abs(diff.y)) {
        if (Math.abs(diff.x) < MOVE_DISTANCE) return
        this._canTouchMove = false
        diff.x > 0 ? this.moveRight() : this.moveLeft()
    } else {
        if (Math.abs(diff.y) < MOVE_DISTANCE) return
        this._canTouchMove = false
        diff.y > 0 ? this.moveUp() : this.moveDown()
    }
}

修改start方法监听触摸事件。

this.randGrid()

this.node.on(cc.Node.EventType.TOUCH_START, (_et: any) => this._canTouchMove = true, this)
this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouchMove, this)
cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this)

运行程序,已经能触摸移动格子了。

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!