Vibrant-Media-Lab / OdysseyNowHAL

5 stars 3 forks source link

OdysseyCon buttons and switches functionality #10

Open PatHealy opened 5 years ago

PatHealy commented 5 years ago

All of the buttons and switches on the new OdysseyCon need to fit their expected behavior. More details on this in the OdysseyConDirector script in the game assets, where this will be implemented.

PatHealy commented 5 years ago

Further description of how this controller's buttons should work:

The two buttons and one rotary encoder should be context sensitive. This will aid players who don't have a keyboard in front of them, and become essential for the Pi build. Here's what I think they should do (let me know if you have other ideas or changes):

Menus: Select button: switches between things to configure. Encoder: changes selected value/option. Enter Button: Makes the selection.

Game Cards: Select button: toggles between up to three modes (but only ones that are relevant to the current game card): Wall, Card Select, AI. When pressed, displays (perhaps in top center of the screen, which rarely affects gameplay) which of those modes are active for just a couple of seconds. The mode stays active even when display disappears.

Encoder: Changes the value of the selected mode. Changes wall position on the fly (up to a preset range from default; check a real Odyssey for this range), allows the user to actually select the card (scrolling through numbers; when stop on one for more than 1 second, changes to it), and select an AI module from among those available for this particular game card (this shouldn't even be an option if there aren't any AI modules for the current game card).

Enter Button: Changes game card by one increment. If an encoder pop-up menu (card select or AI) is active, immediately enters the current selection. In game card 13, if "Emulate Switch Controller" has been selected in the Advanced Features menu, then this button always changes the state of the switch. The switch is always on or off. When off, the wall is at full height. When on, the wall is at volleyball height. You don't need to create a visualization for the switch state, because it is always and immediately reflected in the state of the wall.