osudroid / osu-droid

http://osudroid.moe
Apache License 2.0
491 stars 73 forks source link

Add block area for accidental touch #348

Open DeltaFlyerW opened 1 week ago

DeltaFlyerW commented 1 week ago

Description

Add an anti-accidental touch feature, which allow user to select some area on screen that the touch inside will not be a valid input event for game.

Justification

As screen-to-body ratio grows in decent mobile devices, accidental touch has been a problem for many play styles. During play, accidental touch causes unexpected drop as your palm or finger touch screen edge.

Possible Implement

Add a option under Options/Advance which pop a page when click. In the page, user can add new block area or drag the zero width area from the screen edge.

Alternative methods

A workground is to create float window in edge with third party application. But it would be a good idea to integrate this feature into osu-doid.

DeltaFlyerW commented 1 week ago

A possible implementation for setting page is creating a Preference subclass. It will start a webview and receive json config by WebAppInterface. Below is a example page. Sample Setting Page

Reco1I commented 1 week ago

I think a better approach for this is an option to ignore input outside playfield.

DeltaFlyerW commented 1 week ago

I think a better approach for this is an option to ignore input outside playfield.

This may lack of some flexibility. And it requires user to set a smaller playfield which cause anothor UI issue.

Reco1I commented 1 week ago

I think a better approach for this is an option to ignore input outside playfield.

This may lack of some flexibility. And it requires user to set a smaller playfield which cause anothor UI issue.

Not necessarily. The main issue with ghost touches is in wide screen devices meanwhile the playfield is (should be) 4:3. And if you ghost touch inside playfield it means skill issue.

DeltaFlyerW commented 1 week ago

(https://github.com/osudroid/osu-droid/pull/350#issue-2262842242)