The Tile movement behavior allows an object to be moved up, down, left and right, moving a fixed distance at a time, controlled by the arrow keys by default. This is useful for tilemap-based games, where the level is designed around a grid: by using the same grid size with the Tile movement, the controlled object will always be aligned with a grid cell.

The Tile movement aligns the object's origin with the grid. To ensure the object appears in the correct alignment with a visible grid, ensure the object size is the size of the cell, and place the origin in the top-left corner. Often it's easiest to make this object invisible, and place the player sprite on top so that it can keep its own size and origin, as is done in this example of the Tile movement behavior.

The Tile movement behavior is blocked by any objects with the Solid behavior.

To set up custom or automatic controls, see the behavior reference summary.

Scripting

When using JavaScript or TypeScript coding, the features of this behavior can be accessed via the ITileMovementBehaviourInstance script interface.

Tile movement properties

Grid width
Grid height
The size of the movement grid cells, in pixels. The object moves in increments of this size. Normally this matches the size of a corresponding tilemap.
Grid offset X
Grid offset Y
The offset of the movement grid, in pixels. This can be used to align with a tilemap that is not aligned with (0, 0) in the layout.
Speed X
Speed Y
The speed of the movement on each axis, in pixels per second.
Enabled
Whether the behavior is initially enabled or disabled. If disabled, it can be enabled at runtime using the Set enabled action.
Default controls
If enabled, movement is controlled by the arrow keys on the keyboard. Disable to set up custom controls using the Simulate control action. For more information see the behavior reference summary.
Isometric
Check to enable an isometric grid movement, along diagonals. In this mode the "up" direction is towards the top-right. The default is unchecked, using a cartesian grid with horizontal and vertical movement.

Tile movement conditions

Can move to
Test if the object can move into a grid cell, given by its grid column and row. This is true if the cell is clear of any obstacles.
Can move in direction
Test if the object can move N cells in a given direction. Unlike the Can move to condition this checks for obstacles between the object and the destination.
Is enabled
Test if the behavior is currently enabled.
Is moving
Test if the behavior is currently moving in to a cell.
Is moving in direction
Test if the behavior is currently moving left, right, down or up. This is useful for setting the corresponding animation.

Tile movement actions

Set default controls
Enable or disable the Default controls property (see above for more details).
Set enabled
Enable or disable the movement. If disabled, the movement no longer has any effect on the object.
Set grid dimensions
Specify new values for the Grid width, Grid height, Grid offset X and Grid offset Y properties.
Set grid position
Set the object to a cell in the grid, given by its grid column and row. The Movement option allows the object to either be set to that position instantly, or animate over for a smooth movement over time.
Set ignoring input
Set whether input is being ignored. If input is ignored, pressing any of the control keys has no effect. However, unlike disabling the behavior, the object can continue to move.
Set speed
Specify new values for the Speed X and Speed Y properties.
Simulate control
Simulate one of the movement controls being held down. Useful when Default controls is disabled. See the behavior reference summary for more information.

Tile movement expressions

GridTargetX
GridTargetY
Return the grid cell the object is currently moving towards, by its column and row.
GridX
GridY
Return the current grid cell the object is in by its column and row.
SpeedX
SpeedY
Return the current speed of the object on each axis, in pixels per second.
TargetX
TargetY
Return the layout co-ordinates of the grid cell the object is currently moving towards, by its column and row.
Construct Animate Manual 2024-02-16