flame-engine / flame

A Flutter based game engine.
https://flame-engine.org
MIT License
8.98k stars 879 forks source link

Observed possible input interruptions #3210

Closed Somtobro closed 1 week ago

Somtobro commented 1 week ago

What happened?

Straight to the point I'm using onPans override for a swipe effect in my game. But by observation I observed that when ever I added any other input component My basic swipe detector gets slower. Is that supposed to happen? For the swipe detector it's a basic swipe detector but the function is called in the onpanudate function after the user swipes a min distance of 4 pixels and swipe ended.thats all the logic.if u need the code I can share. I've observed this over a long period of time and I'm confident something is happening underneath causing this. It's really affecting me adding hudbuttons and advanced buttons and TapCallbacks in my flamegame Please investigate this, I'd be grateful.

Edit: I think it's the touch pressure causing it, I'm not sure. Cos when I press down the more it works. But there's not param to control the pressure.

What do you expect?

What I expected- Basically for it to work as smooth as it was working before adding the TapCallbacks component

How can we reproduce this?

For the swipe detector it's a basic swipe detector but the function is called in the onpanudate function after the user swipes a min distance of 4 pixels and swipe ended.thats all the logic.if u need the code I can share.

What steps should take to fix this?

No response

Do have an example of where the bug occurs?

No response

Relevant log output

No response

Execute in a terminal and put output into the code block below

Output of: flutter doctor -v

Affected platforms

Android

Other information

No response

Are you interested in working on a PR for this?

ufrshubham commented 1 week ago

An example would be really helpful to understand what exactly you mean by a swipe detector getting slower.

spydon commented 1 week ago

This is how the gesture arena in Flutter works, if it has more types of gestures in the arena it takes a bit longer for it to determine which gesture that wins. I'm not sure if the values can be modified somehow, but this and the constants on the parent page are the ones used to determine how much delay there will be: https://api.flutter.dev/flutter/gestures/kPanSlop-constant.html

spydon commented 1 week ago

Here is a related Flutter issue: https://github.com/flutter/flutter/issues/54359