【发布时间】:2011-11-02 19:35:45
【问题描述】:
我正在练习一些简单的 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++ 相同。 fluffycat.com/Java/Casting
-
你应该尽可能多地做 double 计算,当你最终将它传递给一个接受 int 的方法时,你做 Math.round()。