Ciao Snogar,
Abbiamo provato ieri tutto il pomeriggio io e TheDarkJuster mentre eravamo in Chat.
Nulla.
Non siamo riusciti a venirne a capo.
L'NPC parte dalla posizione Fissa Y = 96
La matematica non è un opinione questo lo sappiamo tutti.
Di fatti se gli dico di muoversi di 32, non lo fà, incrementa di qualche pixel il risultato finale.
Ma ho notato una cosa.
Debuggando step by step la funzione dello spostamento.
ad ogni interrupt, funziona tutto perfettamente,
Sottrae 2 a iMove e incrementa 2 ad iPos.
Debuggando passo dopo passo funziona, mentre in RunTime sballa i pixel.
L'unica soluzione plausibile che mi è venuto in mente, e che il gestore dei tasti tramite le DirectX
è nettamente superiore e molto più veloce di qualsiasi altro gestore.
In alcune parti del codice, per gestire bene i tasti, sono stato costretto ad inserire un ciclo di pausa.
altrimenti tipo, Se premo ENTER e come se lo avrei premuto 10 volte consecutivamente.
anche con un piccolissimo tocco.
Per farlo incrementare di 1 dovevi proprio sfiorare il tasto.
penso che il problema sia causato proprio da questo fattore.
Stasera provo a cambiare la gestione dei tasti.
Anziché sfruttare l'input delle DirectX provo a sfruttare l'input del Form al KeyDown.
Essendo molto più lento, dovrebbe funzionare.
Ho appena fatto un test qui da dove lavoro nei 5 minuti di pausa, e col gestore dei tasti del Form
Non sballa. prosegue senza problemi.
|