Thursday, June 5, 2008

Radar 2


Non senza qualche difficoltà ho finalmente sistemato il problema del radar che mostrava gli oggetti in posizioni non corrette quando si ruotava la visuale lungo la verticale, rendendolo così di fatto inutilizzabile.
Per la cronaca, la matrice di trasformazione tra coordinate assolute e relative alla posizione ed orientamento dell'astronave non era corretta, o meglio al suo posto andava utilizzata la sua inversa.
Il calcolo matriciale, specie in ambito tridimensionale, spesso è tutto tranne che intuitivo, e non nascondo una mia certa difficolta nell'evitare di far confusione, però devo ammettere che è uno strumento estremamente potente, in poche righe di codice si riesce a fare ciò che con la normale trigonometria diventa invece un pericoloso vortice di lunghe e caotiche forumle, nel quale è davvero facile naufragare.
Sistemato quindi il problema ho deciso di aggiungere l'indicatore di direzione (la freccia rossa che vedete in foto), che rappresenta costantemente la direzione verso la quale la vostra astronave si muove per inerzia, rispetto al vostro stesso punto di vista.
Indubbiamente è comodo, specialmente quando ci si vuole fermare: si orienta l'astronave in modo che la freccia rossa punti verso il "nord" del radar, e si accendono i retrorazzi, fino a quando la velocità non raggiunge lo zero.
Ma ovviamente non basta, la guida è ancora tutt'altro che comoda, e vanno studiati altri accorgimenti affinchè l'esperienza non diventi frustrante.
Un'altra cosa che ho deciso di implementare è la possibilità di cambiare la scala del radar.. quando si combatte ovviamente le distanze tra un'astronave e l'altra sono relativamente piccole, (direi sotto i 100 km), mentre quando si naviga tra un pianeta e l'altro ovviamente le distanze sono milioni di volte piu' grandi. E' chiaro quindi che, a seconda di quel che stiamo facendo, occorre utilizzare la scala appropriata.

No comments: