Skip to content
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

Clicked hit circle takes away cursor #28161

Closed
shiumano opened this issue May 12, 2024 · 9 comments · Fixed by #28167
Closed

Clicked hit circle takes away cursor #28161

shiumano opened this issue May 12, 2024 · 9 comments · Fixed by #28167

Comments

@shiumano
Copy link

shiumano commented May 12, 2024

Type

Game behaviour

Bug description

Even a circle that has been hit and disappeared will cause a direct touch and take away the tracked cursor.
In addition to ZX in the playfield, this also occurs when the cursor moves off-screen due to Depth, etc.

Screenshots or videos

out.mp4

Version

2024.412.1

Logs

logs.zip

@smoogipoo
Copy link
Contributor

I'm not really making sense of this issue, sorry. It looks like you're touching with two fingers, but retouching with the first finger? This would be expected behaviour.

@bdach
Copy link
Collaborator

bdach commented May 13, 2024

I agree that the issue report is kinda inscrutable but looking at the implementation:

public bool CheckScreenSpaceActionPressJudgeable(Vector2 screenSpacePosition) =>
// This is a very naive but simple approach.
//
// Based on user feedback of more nuanced scenarios (where touch doesn't behave as expected),
// this can be expanded to a more complex implementation, but I'd still want to keep it as simple as we can.
NonPositionalInputQueue.OfType<DrawableHitCircle.HitReceptor>().Any(c => c.ReceivePositionalInputAt(screenSpacePosition));

it does like we could use a CanBeHit() check in there somewhere just in case. I haven't even checked if this causes an actual issue but it looks like it might.

@smoogipoo
Copy link
Contributor

smoogipoo commented May 13, 2024

Before saying anything else, I'm just trying to assess what the actual case is here - i.e. what the actual inputs being done are, because I suggested (or complained about) touch input related to spinners in the past to peppy that was rejected privately as "input can never work like that".

@ShiroWhiteowo
Copy link

i seem to have a similar problem...
i use a stylus to move and use another finger to click the circle, but sometimes the cursor moves to the finger i clicked the circle

YouCut_20240513_155633193.mp4

@shiumano
Copy link
Author

I apologize for always explaining myself so poorly.

The cursor position moves directly to the finger that tapped the circle. This is not a problem. Excellent.
However, if I tap the position of a circle that has already been clicked and disappeared from the game, the cursor moves to that finger. This does not make sense. Obviously there is no hit circle there, and there is no intention to tap it.

@shiumano
Copy link
Author

We have reproduced the problem in slow motion whenever possible.

  1. hit the circle
  2. drag the cursor
  3. Tap the location where the circle was (now there is nothing)
  4. The cursor moves to the location where you tapped.
out.mp4

Is this expected behavior?

@smoogipoo
Copy link
Contributor

Are you releasing the dragging finger (the primary finger) in that scenario? Or does it remain pressed at all times?

@shiumano
Copy link
Author

shiumano commented May 13, 2024

It is still dragging. I think I recorded a video that makes it easy to see that this is so.

Edit: this is hard to see. Why was I so confident?
Anyway, it really is still in drag.

@shiumano
Copy link
Author

i seem to have a similar problem... i use a stylus to move and use another finger to click the circle, but sometimes the cursor moves to the finger i clicked the circle

YouCut_20240513_155633193.mp4

Hmmm, this seems to be a different issue.
In Android, you can overlay the input by displaying the pointer position from the developer options.
Check to see if the stylus input is interrupted.
Screenshot_20240514-010539

A way to solve this problem is to define a ZX input area.
You can display a button overlay as in CTB, or you can define it as forcing the outside of the playfield to be used as such.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants