也许我疯了,但我希望将我在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);
}
}
答案 0 :(得分:2)
这是真的;你不能在Java中添加任意类型 - 错误信息是正确的。
你得到一些用于字符串连接的语法糖,就是这样 - 你添加的任何其他东西最好是原始的或可映射的对象包装器(例如,我在看着你,BigDecimal
,没有+
)。
无论_location
是什么,如果您尝试将其添加到Point
或Vector2
,它都无法使用+
。您可以添加单个组件,使用矢量/点方法或实用程序库等。
答案 1 :(得分:0)
这不是Eclipse的问题; Java没有运算符重载(除了一小部分情况)。
Why doesn't Java offer operator overloading?
一篇有趣的文章:
http://java.dzone.com/articles/why-java-doesnt-need-operator