Mi sto esercitando in una semplice programmazione di giochi 2D e mi è venuta in mente una teoria durante l'animazione (il cambiamento effettivo in una posizione dell'immagine viene calcolato al meglio con numeri in virgola mobile). Ho la sensazione che se si muove un'immagine con ints l'animazione non sarà così liscia.Cosa succede quando si converte double (o float) in ints?
In Java sembra che non sia possibile disegnare un'immagine con numeri in virgola mobile per dare un'immagine a una posizione. Ma apparentemente quando dichiari inizialmente il tuo x e y, puoi dichiararlo come Double o Float, e quando si tratta di disegnare effettivamente l'immagine devi lanciarli in ints. Come trovo HERE:
/**
* Draw this entity to the graphics context provided
*
* @param g The graphics context on which to draw
*/
public void draw(Graphics g) {
sprite.draw(g,(int) x,(int) y);
}
La mia domanda è su come Java gestisce la conversione? Se il codice lancia questi doppi all'ultimo minuto, perché li hanno raddoppiati? Java nasconde i numeri dopo il decimale?
So che in C e C++ i numeri dopo il decimale vengono troncati e si vede solo che cosa c'è prima. In che modo Java gestisce questo casting?
Diminuisce solo il decimale, come C, C++. http://www.fluffycat.com/Java/Casting/ – dmcnelis
Dovresti eseguire i calcoli in doppio il più possibile, e quando alla fine lo passi a un metodo che accetta int, fai Math.round(). – Stephan