私は非常に基本的な問題だと思います。7 つのスプライトを使用して基本的なアニメーションを実行しようとしています。そのうちの 6 つは Sprite[] 配列にあります。
現在、キーを押すと正しくアニメーション化され、左に移動すると反転しますが、それは後で理解する必要があります. 今のところ、これらのスプライトのサイズを変更したいと思います。
現在、サイズは 32x68 です。これが私のコードです:
jimRect = new Rectangle();
jimRect.height = 96;
jimRect.width = 48;
jimRect.x = 800 / 2 - jimRect.getWidth();
jimRect.y = 0;
// Create our assets
rock = new Texture(Gdx.files.internal("data/img/rock.png"));
gems = new Texture(Gdx.files.internal("data/img/gems.png"));
jim0 = new Sprite(new Texture(Gdx.files.internal("data/img/jim0.png")));
jim1 = new Sprite(new Texture(Gdx.files.internal("data/img/jim1.png")));
jim2 = new Sprite(new Texture(Gdx.files.internal("data/img/jim2.png")));
jim3 = new Sprite(new Texture(Gdx.files.internal("data/img/jim3.png")));
jim4 = new Sprite(new Texture(Gdx.files.internal("data/img/jim4.png")));
jim5 = new Sprite(new Texture(Gdx.files.internal("data/img/jim5.png")));
jim6 = new Sprite(new Texture(Gdx.files.internal("data/img/jim6.png")));
// Create animations
sprites = new Sprite[] { jim1, jim2, jim3, jim4, jim5, jim6 };
walkFrames = new Animation(ANIM_DURATION, sprites);
stateTime = 0;
for(int i = 0; i < sprites.length - 1; i++){
sprites[i].setSize(jimRect.getWidth(), jimRect.getHeight());
System.out.println("Resized " + i + " sprites to " + jimRect.getWidth() + "x" + jimRect.getHeight());
}
}
基本的には、高さ 96、幅 48 の長方形を作成して Jim を少し大きくします。次に、スプライトを作成して配列に追加するプロセスを実行します (分割メソッドを使用したテクスチャ領域はより良いですが、それは問題を引き起こし、私を悩ませていました)。
次に、期間とスプライト配列を使用してアニメーションを作成します。
ここで特にこの部分:
for(int i = 0; i < sprites.length - 1; i++){
sprites[i].setSize(jimRect.getWidth(), jimRect.getHeight());
System.out.println("Resized " + i + " sprites to " + jimRect.getWidth() + "x" + jimRect.getHeight());
}
なぜこれが機能しないのですか?ループが開始されていること、配列が適切に反復されていること、長方形の幅/高さが私が設定したものであることを確認できるように、非常に凝ったコンソール プリントも追加しました。