我正在练习一些简单的2D游戏编程,并提出了一个理论,在动画过程中(图像位置的实际变化最好用浮点数计算)。我有一种感觉,如果你用整数移动图像,动画就不会那么平滑。将双精度(或浮点数)转换为整数会发生什么?
在Java中,似乎你不能用浮点数来绘制图像来给图像定位。但显然当你最初声明你的x和y的时候,你可以声明它们为Double或Float,而当涉及到实际绘制图像时,你必须将它们投射到整数。就像我找到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);
}
我的问题是关于Java如何处理转换? 如果代码在最后一刻投出这些双打,为什么他们首先是双打? Java是否隐藏小数点后的数字?
我知道在C和C++小数点后的数字被截断,你只能看到它之前的数字。 Java如何处理这种转换?
它只是丢弃小数点,与C,C++一样。 http://www.fluffycat.com/Java/Casting/ – dmcnelis
您应该尽可能多地进行双倍的计算,并且当您最终将其传递给接受int的方法时,您可以执行Math.round()。 – Stephan