2015-04-16 8 views
6

Per un esperimento ho deciso di programmare un piccolo gioco nella mia TI-89 utilizzando l'editor di programma integrato, tuttavia non riesco a trovare un metodo ottimale per ottenere i tasti senza un ritardo significativo. Attualmente ho:Metodo ottimale di controllo dei tasti su TI-89

Prgm 

70→xpos 
70→ypos 

Loop 

If getKey()=340 Then 
xpos+3→xpos 
PxlCrcl ypos,xpos,5,1 
EndIf 

If getKey()=337 Then 
xpos-3→xpos 
PxlCrcl ypos,xpos,5,1 
EndIf 

If getKey()=257 Then 
Goto end 
EndIf 

EndLoop 
Lbl end 

EndPrgm 

Questo crea un ciclo infinito gioco che verifica se la sinistra, a destra, o eliminare i pulsanti sono premuti e disegnare un cerchio a sinistra oa destra di conseguenza o terminare il programma del tutto. Tuttavia, questo metodo sembra funzionare molto lentamente e ho visto movimenti molto più fluidi in altre dimostrazioni. C'è qualcosa di sbagliato nel mio metodo e, in tal caso, come posso migliorarlo?

+0

Avete provato a impostare 'getKey()' su una variabile, quindi testare la variabile? Non ho la mia calcolatrice su di me per testarlo, ma sembra che forse eseguire 'getKey()' più volte (uno per ogni istruzione 'If') potrebbe rallentarlo più che semplicemente testare una variabile. – jaysoncopes

risposta

3

Spiacente, io uso una TI-84, ma questo metodo dovrebbe ancora funzionare.

La funzione getKey() è la funzione che sta creando un ritardo. È sufficiente eseguire la funzione getKey() una volta se si mette l'output in una variabile. In TI-84, puoi semplicemente fare

getKey->K 

Dovresti essere in grado di fare esattamente la stessa cosa con TI-89.

Spero che questo aiuti!

0

Quello che faccio di solito è usare un'istruzione While not() quindi controllare la risposta in seguito.

Per esempio

loop 
0 -> X 
while not(X) 
    do something every iteration 
    getKey() 
    if Ans: Ans -> X 
Check values of X with If statements 
End loop 

In questo modo si sta solo eseguendo del codice (Forse qualche aggiunta di base e la sottrazione o un ciclo for per rallentare le cose) e un singolo If su ogni anello della dichiarazione Mentre invece di controllare un sacco di istruzioni If su ogni ciclo.

Questo ti serve bene e ti permette di fare qualcosa su ogni iterazione del ciclo While mentre stai ancora controllando la pressione di un tasto.

Nota che di solito programma su TI-84s, ma l'idea dovrebbe funzionare più o meno nella TI-89 con un po 'di regolazione.

Problemi correlati