Phaser.js: Phaser: Mouse input

Join the AI Workshop to learn more about AI and how it can be applied to web development. Next cohort February 1st, 2026

The AI-first Web Development BOOTCAMP cohort starts February 24th, 2026. 10 weeks of intensive training and hands-on projects.


This post is part of a Phaser series. Click here to see the first post of the series.

Any GameObject can be made interactive.

To do so, we must call the setInteractive() method on it:

text = this.add.text(100, 100, 'test')
text.setInteractive()

Once a GameObject is interactive, it can listen for events.

This is done using the on() method. We pass an event name, and a callback function that’s executed when the event occurs:

text.on('pointerup', function () {})

pointerup is just one of the mouse events we can listen for. We also have:

  • pointerdown
  • pointerdownoutside
  • pointerup
  • pointerupoutside
  • pointermove
  • pointerover
  • pointerout
  • wheel

This is just the beginning. We have many advanced mouse (and touch events) controls at our disposal.

gameobjectdown is a more general event that is fired when any interactive element is clicked, and it’s not fired on an object, but on this.input:

this.input.on('gameobjectdown', () => {})

Lessons in this unit:

0: Introduction
1: Setting up a project to build a JavaScript game with Phaser
2: Phaser: The Canvas
3: Phaser: Scenes
4: Phaser: Multiple scenes
5: Phaser: The game loop
6: Phaser: Adding images
7: Phaser: Sprites
8: Phaser: GameObjects
9: Phaser: Animations
10: Phaser: Keyboard events
11: ▶︎ Phaser: Mouse input
12: Phaser: Physics
13: Phaser: collisions and screen boundaries
14: Phaser: Playing sounds
15: How to create a platformer game with Phaser.js