MichaelSinsbeck / platformer

A ninja platformer written in LÖVE
7 stars 0 forks source link

Key Assignment: Add "Clear key" functionality and check for unset keys. #235

Closed Germanunkol closed 9 years ago

Germanunkol commented 9 years ago

Reminder to self:

michalove commented 9 years ago

Instead of "unsetting" keys we can also simply swap two keys, whenever there is a conflict.

Also we should think in "key groups", because a key can have different functions in-game and in the menu. There are no conflicts between "jump" and "choose" for example.

Germanunkol commented 9 years ago

The current conflict function takes this into account. In keys.lua, there is a table keys.conflictLists. Each table inside that list is such a conflict group, as you mention it.

I think swapping out would be difficult, though. There could be an "enter" in each group - if I re-assign enter to a new function, then in all groups, the enter must be replaced. But what if I want one of the previous enters to be something else? "Jump" and "Choose" could both be enter - but what if I want jump to be space and choose to be enter - I think it will get confusing if we automatically reassign keys. Right now, if just looks for conflicts at the end, when leaving the menu - I think that makes it easier. And once we take out the debug keys, the list is much shorter, so we should be fine.

One other thing, though: When saying "Unset", I was talking about gamepad keys, mainly. There are too few gamepad keys to have all functions covered on the gamepad, and some (i.e. fullscreen, screenshot...) aren't really necessary - so those functions should be "unset", meaning they have no gamepad key assigned.

michalove commented 9 years ago

ok. got it.