2017-01-18 1 views
0

を返すように言った「Gradleのエラー:互換性のない型:オブジェクトがTextureRegionに変換することができません」この行でLibGDX getKeyFrameは、このチュートリアルに続き代わりTextureRegionのオブジェクト/フレーム

region = heroJump.getKeyFrame(stateTimer);

heroJumpは次のように宣言されています。

private Animation heroJump; 

、それは、トップアップインポートされます:Androidのメーカーで

import com.badlogic.gdx.graphics.g2d.Animation; 

あなたがheroJump.getKeyFrameを(入力フライアウトボックス)は、そのオブジェクトは、関数の戻り値の型であることを示しています。
チュートリアルでは、TexturedFrameを示しています。
私はチュートリアルと同じものをインポートしています。
戻り値の型が同じものとして表示されない理由がわかりません。
Animationクラスをクリックしてドキュメントを表示しても、適切な戻り値の型があるようです。

AndroidStudio/Compilerが正しい戻り値の型を認識してコンパイルするように正しく行われていないことはありますか?

+2

最近アニメーションクラスが変更されました。http://www.badlogicgames.com/wordpress/?p=3980チュートリアルに従う場合は、チュートリアルの作成に使用したlibgdxバージョンを使用してください。 – Xoppa

+0

最も簡単な回答は変更 "プライベートアニメーションheroJump;" 〜 "プライベートアニメーション heroJump;" –

答えて

6

方法は

public T getKeyFrame(float stateTime) 

としてAPIで宣言され、クラス定義public class Animation<T>されます。

生のAnimationインスタンスがあります。輸入は問題ではありません。宣言はです。

たとえば、あなたはprivate Animation<TextureRegion> heroJump;をしたいと思いますし、あなたのArray<TextureRegion>

+0

これは動作します。ありがとうございました。まだチュートリアルで宣言にその必要がない理由を理解していない。おそらくその時間の経過とともに変化しました。 –

+0

ビデオに登場したオートコンプリートを考慮して、おそらく配列パラメータが 'TextureRegion'コレクションになる必要があることを示しました –

+1

1.9.5 LibGDXリリースでクラスが変更されたため、チュートリアルは古くなっている可能性があります。 – Tenfour04

4

あなたは、コンパイラが非曖昧それらを決定できるような方法でジェネリックを定義していないことを与えると思います。 Animationは実際にはAnimation<T>であり、Tはコンパイラに指定する必要があります。

private Animation<TextureRegion> heroJump; 

のではなく、あなたのコードブロックに記載されているあいまいなフォーム:それはに設定する必要がありますTextureRegionことが期待ですので、もし「修正」は、あなたのheroJumpインスタンスにTを定義することです。

+0

ありがとう、アンサーとしてマークしますが、あなたは数秒で殴られました:) –

+0

@ChrisValentine - 問題ではない:D – Sleaker

関連する問題