简单数学运算符上的奇怪java错误

时间:2012-02-15 03:06:34

标签: java android xna

也许我疯了,但我希望将我在XNA游戏开发课中学到的一些逻辑融入到android / java游戏编程中。例如,我使用Point而非Vector2以编程方式操作图形的位置,并根据Android设备的dpi和方向调整图形大小。

我认为在布局GUI并确定应该从哪个文件夹(hdpi,ldpi或mdpi)中获取时,找到图形的中心将是一个很好的资产。不幸的是,Eclipse似乎有加号的问题。这很有趣,因为我正在尝试执行一个简单的数学运算。:

  

运算符+未定义参数类型android.graphics.Point,android.graphics.Point

//Java  code was both copied & pasted as well as written to make sure Visual Studio
public Point Center()
{
    return new Point(_frameWidth/2, _frameHeight/2)+_location;
}

//Original XNA code
//Determines the coordinates of a sprite's center
public Vector2 Center
{
    get
    {
        return _location + new Vector2(_frameWidth / 2, _frameHeight / 2);
    }
}

2 个答案:

答案 0 :(得分:2)

这是真的;你不能在Java中添加任意类型 - 错误信息是正确的。

你得到一些用于字符串连接的语法糖,就是这样 - 你添加的任何其他东西最好是原始的或可映射的对象包装器(例如,我在看着你,BigDecimal,没有+)。

无论_location是什么,如果您尝试将其添加到PointVector2,它都无法使用+。您可以添加单个组件,使用矢量/点方法或实用程序库等。

答案 1 :(得分:0)

这不是Eclipse的问题; Java没有运算符重载(除了一小部分情况)。

Why doesn't Java offer operator overloading?

一篇有趣的文章:

http://java.dzone.com/articles/why-java-doesnt-need-operator