creazione di stati semplici per un input stateless

2

Dato un dispositivo di input (fondamentalmente una tastiera) che riporta keyup e keydown, come posso archiviare e recuperare in modo più efficiente le informazioni su quali tasti sono attualmente depressi ? Il mio primo pensiero è stato un array dinamico, ma il mantenimento e la ricerca di una matrice dinamica sembra un serio esaurimento delle risorse.

Molte grazie in anticipo per qualsiasi aiuto

Joe

    
posta jamesson 17.02.2013 - 15:51
fonte

1 risposta

1

Una matrice a lunghezza fissa funziona perfettamente, poiché il numero di tasti non può essere modificato. Quindi, crea un array, chiamalo depresso , di lunghezza N, dove N è il numero di tasti sul dispositivo di input. Quando il tasto X è premuto, impostare [X] su True. Quando viene rilasciata la chiave X, impostare [X] su False. Per riportare lo stato Vero / Falso di una determinata chiave, avrai bisogno di una mappatura dai nomi a livello utente / API, agli indici nella tua matrice. per esempio. MOTOR_REVERSE_TOGGLE - > posizione 6 nell'array.

Per quanto riguarda efficienza , un array dovrebbe essere adeguato per lo spazio, a meno che tu non abbia restrizioni di memoria molto strette su qualunque dispositivo tu stia programmando. In tal caso, utilizzeresti un campo bit per memorizzare i dati. Fondamentalmente, è lo stesso dell'array, tranne che per le parole impostate su True o False (che finirebbero con alcuni numeri magici, ad esempio 11111111 e 00000000), si impostano i singoli bit di una parola su 1 o 0.

    
risposta data 22.02.2013 - 20:09
fonte

Leggi altre domande sui tag