In un gioco controllato da un gamepad, in cui gli ingressi di controllo cambiano direttamente il focus della GUI da un pulsante della GUI a un altro, quei pulsanti della GUI dovrebbero essere attivati quando si preme un pulsante del controller .
In un gioco controllato da un mouse (o se si utilizza un gamepad per spostare un cursore del mouse virtuale sullo schermo), i pulsanti su schermo devono essere attivati quando il pulsante mouse / controller viene rilasciato sullo stesso pulsante in cui si trovava premuto . (Se la pressione si è verificata su un pulsante della GUI e il mouse è stato quindi spostato e rilasciato su un pulsante della GUI diverso, nessuno dei due pulsanti della GUI è attivato)
La ragione di ciò è che le abilità di controllo del mouse delle persone sono molto variabili e spesso le persone hanno un po 'di problemi a posizionare il cursore esattamente dove lo vogliono, o addirittura a dire con precisione quale pulsante della GUI si sta spostando al momento. La teoria è che le persone possono premere e tenere premuto il pulsante del mouse per evidenziare il pulsante GUI, e se quel pulsante GUI non era quello che intendevano utilizzare, possono spostare il cursore lontano da esso prima di rilasciare il pulsante del mouse in ordine per evitare di premerlo.
Ma se il tuo gioco è controllato da un gamepad, allora devi assolutamente agire quando viene premuto il pulsante gamepad, non quando viene rilasciato.
Modifica, cinque anni dopo:
Da quando è stata pubblicata questa risposta, è emerso un nuovo standard per la gestione dei cursori in stile mouse controllati dai gamepad.
Nella risposta sopra, ho suggerito che questi dovrebbero essere implementati per funzionare esattamente come i cursori che sono effettivamente controllati dai topi; evidenziare al passaggio del mouse verso il basso, attivare al passaggio del mouse se il cursore si trova ancora sullo stesso elemento della GUI.
Ma ora, i cursori controllati dal gamepad in genere attivano un'azione della GUI dopo che il pulsante del gamepad è stato tenuto premuto per un periodo di tempo(in genere circa un secondo). Se seguirai questo sistema, avrai bisogno di un indicatore sullo schermo che mostri per quanto tempo ci vorrà l'attivazione (spesso questo è un piccolo anello attorno al cursore stesso, che si riempie man mano che ti avvicini all'attivazione del al passaggio del mouse) e devi comunque evidenziare l'elemento che verrà attivato, durante il tempo in cui il pulsante viene tenuto premuto (e potrebbe essere una buona idea farlo ogni volta che il mouse si trova sopra un elemento, anche se il pulsante non viene tenuto premuto). Mentre si tiene premuto il pulsante, il cursore non dovrebbe poter essere spostato, al fine di evitare attivazioni accidentali di elementi della GUI se il cursore viene spinto all'ultimo momento.
Il vantaggio di questo sistema è che consente a un utente il cui cursore di tipo mouse si trova sul punto sbagliato per evitare di attivare quell'elemento semplicemente rilasciando il pulsante in anticipo; lo stile del mouse "allontanarsi da esso prima di rilasciarlo" è meno naturale da realizzare su un gamepad che con un mouse, e questo approccio consente all'utente di un gamepad di interrompere un clic indesiderato molto più facilmente.
Stiamo persino iniziando a vedere alcuni giochi che sperimentano questo modello di interazione con il cursore anche quando il loro cursore viene spostato da un mouse reale. No Man's Sky fa questo, ad esempio. Sarà interessante vedere se questo approccio alla gestione dell'interazione mouse-cursore diventerà sempre più comune e previsto nei prossimi anni.