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 协议》,转载必须注明作者和本文链接