Ich habe eine Sprite-Bild Textur, die wie folgt aussieht: Libgdx Animieren Texture Regionen
Und ich versuche, es zu beleben. Ich habe diesen Code jeden Frame in eine TextureRegion Variablen zu speichern einzurichten dann speichern alle Frames in einer Animation TextureRegion Array
//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);
Ich bin ein Strom yDown Koordinatensystem, weshalb ich das Bild spiegeln.
Nach dem Versuch, dies mit diesem Code zu rendern:
TextureRegion currentFrame = AssetLoader.hiroRunAnimation.getKeyFrame(runTime);
sb.begin();
sb.draw(currentFrame,player.getX(),player.getY(),player.getWidth(),player.getHeight());
sb.end();
Es öffnet sich nur mit einem Bild von Blöcken statt Kirby:
Es ist offensichtlich, dass ich etwas falsch mache, ich Ich rate es mit meinem TextureRegion Abschnitt, vielleicht meine X, Y Koordinaten oder falsch, aber ich bin nicht sicher, wie ich das beheben soll, weil ich spritecow.com benutzt habe, um diese Koordinaten zu erhalten. Ich nehme an, die obere linke Ecke ist (0,0) und positives Y bedeutet, dass das Bild nach unten bewegt wird. Wie kann ich Kirby anstelle dieser Boxen erscheinen lassen? Oder wäre es einfacher, jedes Einzelbild in eine separate PNG-Datei zu trennen und einfach Textur anstelle von TexturRegion zu verwenden, so dass ich keinen definitiven Bereich angeben muss. Dann könnte ich Animation verwenden oder würde das nicht auch funktionieren?
Sind diese schwarzen Felder auf Ihrem Spritesheet? – eldo