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

Add region scaling #1

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Add region scaling #1

wants to merge 1 commit into from

Conversation

AdamRoden
Copy link
Contributor

Do you understand what I did? Have a look and we can discuss.
I did this a while ago and didn't necessarily regression test all of your scaling methods, but I've been using my version for months.

@kmcnaught
Copy link
Owner

Could you please provide a keyboard demoing this, and also one that shows your keydown autoreleasing in Optikey (i.e. not with your fix for OKGO - I'll try to get the original Optikey functionality merged instead)

Thanks

@AdamRoden
Copy link
Contributor Author

Fortnite.zip
Here's a set of 3 keyboards. They have the left and right joysticks positioned in different regions and both can be active at the same time.
The Lockable key group has the functionality.

@kmcnaught
Copy link
Owner

This is cool! Thanks. I'll have to look at what existing behaviour it replaces / breaks, but it looks relatively standalone.

One thing I will need is a way to specify whether joysticks are mutually exclusive or not - when you have two regular joysticks to switch between that use the whole screen (e.g. playing Superhot), it's pretty important to have them swap out (though perhaps not for you with your fast dwell time!). In your example it's obviously great having both available at the same time. This would also work well with 1D sensitivity functions - you could splice axes together yourself for things like legacy ("tank") stick controls.

A few ideas, none of which seem to quite hit the spot
a) add something to payload to say "this key is allowed to remain locked down with other joysticks"
b) differentiate with extra function keys - e.g. LeftJoystick and LeftJoystickCustom where the latter can stay locked down
c) add an attribute to a KeyGroup - that says "no more than one key in this group can be held down at a time"

The nice thing about the current setup (before your PR) is that the mutually-exclusive logic is not limited to a single keyboard - if you turn on Left Joystick (using the whole screen) then switch to another keyboard and want to use the Right Joystick (with the whole screen) then you really need the first one to be disabled! This wouldn't be the case with option (c), although it seems the simplest / easiest to work with other than that...

I'll have a think.

PS - If you're happy to share videos of you playing Fortnite I'd love to see!

kmcnaught added a commit that referenced this pull request May 31, 2023
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.

2 participants