编辑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)
运行程序,已经能触摸移动格子了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。