Skip to content

Swipe to throw, tap to repel - #3080

Merged
manuq merged 3 commits into
mainfrom
swipe-to-throw
Nov 11, 2026
Merged

manuq merged 3 commits into
mainfrom
swipe-to-throw

Conversation

@manuq

@manuq manuq commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

The VirtualJoystick to move the player character was a 200x200 px square. Now it is enlarged and adapts to the screen: it is 40% of the screen width and 60% of the screen height. It is still anchored to the bottom left by default, and to the bottom right with a new "left-handed" input setting.

image

Remove the TouchScreenButton used to repel / interact. Now tap anywhere else (outside the pause button and virtual joystick) does repel / interact. Before it was used for throwing the grappling hook in the direction from the player character to the tap position.

For aiming and throwing the grappling hook, instead of tap, now the player should swipe (again, outside the pause button and virtual joystick). And the swipe direction is used in the ControlHook to set the angle. This behaves basically as another virtual joystick.

Add input hints for the touch gestures. This makes the touch experience more consistent with the game played with keyboard, mouse, or joypad. And also solves explaining the touch controls. For doing this, import the touch_sheet_default.png spritesheet from Kenney Input Promts v1.5 (latest). Change the layout of these from right (default) to left when the new left-handed setting is enabled. Leave repel / interact as the inner input hint, because unlike the aim & throw hint, its size changes as the label is updated.

Also add tool buttons for testing the right-handed and left-handed layouts in the editor, in the same way as the balloon.tscn file does it for testing the dialogue at the top or bottom:

Grabacion.de.pantalla.desde.2026-11-11.11-54-44.mp4

Also: add a bit more separation between input hints: from 8 to 16 px. For making this in a single place, add a new HBoxContainer variant named "InputHintsContainer".

Also cleanup: Remove interact type from InteractArea. And remove now unused PNG files for touch buttons.

Update the Spanish translation.

Thanks to @rothiotome for the feedback provided, which allowed me to implement this.

Resolve #3026

Resolve #3024

@github-actions

Copy link
Copy Markdown

Play this branch at https://play.threadbare.game/branches/endlessm/swipe-to-throw/.

(This launches the game from the start, not directly at the change(s) in this pull request.)

@manuq
manuq marked this pull request as ready for review November 11, 2026 14:36
@manuq
manuq requested a review from a team as a code owner November 11, 2026 14:36
And remove now unused PNG files for touch buttons.
@manuq
manuq merged commit a1d7703 into main Nov 11, 2026
7 checks passed
@manuq
manuq deleted the swipe-to-throw branch November 11, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Touch: Improve assets of on-screen buttons Touch controls: Explain how to use the grappling hook

1 participant