Workshop › Pool › Step 27 of 33
Now the slingshot is complete: a press starts dragging, moving the pointer keeps pulling, and letting go shoots. We
listen for the release on the document, so letting go outside the canvas still shoots.
```js
let dragging
dragging = false
dragging = true
canvas.addEventListener('pointermove', (event) => {
if (dragging) pull(toCanvas(event))
})
document.addEventListener('pointerup', () => {
if (!dragging) return
dragging = false
if (power >= 1) shoot()
})
```dragging is true between the press and the release.pointermove updates the aim and power while dragging.let power write let dragging; in reset, under power = 8, write dragging = false.pointerdown, write dragging = true above pull(...).pointerdown listener write the pointermove and pointerup listeners, with empty lines between.Skills: Keyboard and mouse input
← Press to aim Smaller steps →