我有一個精靈圖像的紋理,看起來像這樣:libGDX動畫效果紋理區域
而且我想製作動畫。我有這樣的代碼設置到每個幀存儲到一個變量TextureRegion然後存儲所有的幀轉換爲動畫TextureRegion陣列
//AssetLoader class
runTexture = new Texture("kirbyrun.png");
runTexture.setFilter(TextureFilter.Nearest,TextureFilter.Nearest);
//Run Hiro
hiro1 = new TextureRegion(runTexture,0,55,37,55);
hiro1.flip(false,true);
hiro2 = new TextureRegion(runTexture,37,55,44,55);
hiro2.flip(false,true);
hiro3 = new TextureRegion(runTexture,81,55,44,55);
hiro3.flip(false,true);
hiro4 = new TextureRegion(runTexture,129,55,46,55);
hiro4.flip(false,true);
hiro5 = new TextureRegion(runTexture,176,55,41,55);
hiro5.flip(false,true);
hiro6 = new TextureRegion(runTexture,216,55,41,55);
hiro6.flip(false,true);
hiro7 = new TextureRegion(runTexture,257,55,41,55);
hiro7.flip(false,true);
hiro8 = new TextureRegion(runTexture,301,55,42,55);
hiro8.flip(false,true);
TextureRegion[] run = {hiro1,hiro2,hiro3,hiro4,hiro5,hiro6,hiro7,hiro8};
hiroRunAnimation = new Animation<TextureRegion>(0.5f,run);
hiroRunAnimation.setPlayMode(Animation.PlayMode.LOOP);
我當前使用yDown座標系這就是爲什麼我翻轉圖像。
TextureRegion currentFrame = AssetLoader.hiroRunAnimation.getKeyFrame(runTime);
sb.begin();
sb.draw(currentFrame,player.getX(),player.getY(),player.getWidth(),player.getHeight());
sb.end();
這只是塊而不是科比的圖片打開:
很明顯我做錯了什麼,我米猜測它與我的TextureRegion部分,也許我的X,Y座標或錯誤,但我不知道如何解決此問題,因爲我使用spritecow.com獲取這些座標。我假設左上角是(0,0),正Y意味着向下移動圖像。我怎樣才能使柯比實際出現而不是這些盒子?或者更容易將每個幀圖像分離成單獨的.png文件,只需使用Texture而不是TextureRegion,因此我不需要指定明確的區域。那麼我可以使用動畫或不會工作?
你的spritesheet上有那些黑盒子嗎? – eldo