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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值