2012-02-15 15 views
0

多分私は夢中ですが、私はXNA Game Developmentクラスで学んだロジックをAndroid/Javaゲームプログラミングに取り入れたいと思っています。たとえば、Vector2ではなくPointを使用してプログラムのグラフィックスの位置を操作し、Androidデバイスのdpiと向きに基づいてグラフィックサイズを調整します。簡単な数学演算子での奇妙なJavaエラー

GUIをレイアウトして、どのフォルダ(hdpi、ldpi、またはmdpi)からグラフィックを取り出すべきかを判断するときに、グラフィックの中心を見つけることは素晴らしい資産と考えました。残念ながら、Eclipseにはプラス記号の問題があるようです。私は、単純な数学的操作を実行しようとしていますので、これは興味深いです:

演算子+は、引数の型(S)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

Eclipseでは問題ありません。 Javaには演算子のオーバーロードはありません(非常に小さなケースの場合を除いて)。

Why doesn't Java offer operator overloading?

この興味深い記事:

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

+0

問題解決 - 2つの点のX値とY値を別々のステートメントに追加しました。 C#からJavaに移行するのは面白い経験ですが、私はその挑戦の準備ができています。ありがとう! \t公共ポイントセンター() \t {\t \t INT X = _frameWidth/2 + _location.x。 \t \t int y = _frameHeight/2 + _location.y; \t \t return新しいポイント(x、y); \t} – Shortstuff81000

2

これは本当です。 Javaで任意の型を追加することはできません - エラーメッセージは正しいです。

文字列連結の構文砂糖があります。それ以外のものは、プリミティブまたはマップ可能なオブジェクトラッパー(例えば、私はあなたを見ています。BigDecimal、いいえ+)でなければなりません。

何でも_locationPointまたはVector2に追加しようとすると、+を使用しても機能しません。個々のコンポーネントを追加したり、ベクトル/ポイントメソッドやユーティリティライブラリなどを使用したりすることができます。

+1

伝統的な問題を回避するには、 'point1.add(ポイント2)'またはそれらの線に沿って何かです。 –