このコードを乾かしたい:
@$canvas.on 'mousemove', (e) =>
return unless @running
@mouseTarget.set @board.x + e.clientX, @board.y + e.clientY * 2
@player?.mouseMove()
@$canvas.on 'mousedown', (e) =>
return unless @running
@mouseTarget.set @board.x + e.clientX, @board.y + e.clientY * 2
@player?.mouseDown()
@$canvas.on 'mouseup', (e) =>
return unless @running
@mouseTarget.set @board.x + e.clientX, @board.y + e.clientY * 2
@player?.mouseUp()
私は何かを効果的にしたい:
@$canvas.on 'mousemove', 'mousedown', 'mouseup' -> @mouseAction
mouseAction: (e) =>
return unless @running
@mouseTarget.set @board.x + e.clientX, @board.y + e.clientY * 2
@player?.mouseUp() # here is the problem...
問題は、 DRY コードを維持しながら@player?.mouseUp()
、@player?.mouseDown()
とを切り替えるにはどうすればよいかということです。@player?.mouseMove()