Skip to content

Implement full touchscreen gameplay #525

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

trustytrojan
Copy link
Contributor

@trustytrojan trustytrojan commented Apr 5, 2025

Just as the title says. Here's a video of my bad gameplay but with all inputs properly mapped to the Tau keybinds.
https://streamable.com/chio4f

Touch input overview

  • To hit the normal notes & sliders, tap anywhere on the screen, which simply moves the ingame cursor and initiates a Tau button press (either Left or Right). This is nearly identical to the osu!standard touch logic: the one difference being that there is no longer a delay between when the first finger touches the screen and when it is starts to act as the "pointer" or "cursor".
  • To hit Hard Beats, the idea right now is for dedicated buttons on the screen to act as the Hard Buttons. As of the creation of this PR they are on the left side of the screen and span the screen's height, just like the osu!catch ruleset buttons.

Please leave feedback or feel free to make commits to the branch. Would love to see this make a release. FYI this branch was created from the #524 branch, hopefully this shouldn't be a problem (considering it needs to actually work).

Copy link
Member

@naoei naoei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution, however, I'm going to suspend this on the basis that none of this has been approved off and that there lacks user feedback on how mobile touch inputs should be handled in Tau.

Regardless, I've decided to review this code and give some insight into what our code style should look like.

Comment on lines 38 to 69
Children =
[
mainContent = new Container
{
RelativeSizeAxes = Axes.Both,
Alpha = 0,
Children =
[
new Container
{
RelativeSizeAxes = Axes.Both,
Width = width,
Children =
[
hardButton1 = new InputArea(TauAction.HardButton1, trackedActionSources)
{
RelativeSizeAxes = Axes.Both,
Height = normal_area_height_ratio,
Colour = colours.Gray9,
Anchor = Anchor.BottomRight,
Origin = Anchor.BottomRight,
},
hardButton2 = new InputArea(TauAction.HardButton2, trackedActionSources)
{
RelativeSizeAxes = Axes.Both,
Height = 1 - normal_area_height_ratio,
},
]
},
],
},
];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of this could be replaced with a simple GridContainer.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tried my best but I don't really know the osu-framework well enough to do this. Going to leave it as is because it works in its current state.

@naoei naoei added needs tests For when things need tests. Suspended labels Apr 5, 2025
@naoei naoei marked this pull request as draft April 5, 2025 13:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs tests For when things need tests. Suspended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants