我能正确实现吗?我的角色所在的方向有问题,但状态管理器正常工作。我不确定这是否是问题。构建后,我的播放器会自动朝右,但他朝左。

我在资产管理器中为左右动画设置了两个数组,原始图像朝右,我声明了该数组,然后在左数组上翻转了相同的图像。左数组会否覆盖右数组?

int idleRIndex = 1;
            TextureRegion[] idleRight = new TextureRegion[3];
            for (int i = 0; i < idleRight.length; i++)
            {
                idleRight[i] = rubenSprite.findRegion("iframe" + idleRIndex);
                idleRIndex++;
            }
            rubenIdleRight = new Animation(0.2f, idleRight);

int idleLIndex = 1;
                TextureRegion[] idleLeft = new TextureRegion[3];
                for (int i = 0; i < idleLeft.length; i++)
                {
                    idleLeft[i] = rubenSprite.findRegion("iframe" + idleLIndex);
                    idleLeft[i].flip(true, false);
                    idleLIndex++;
                }
                rubenIdleLeft = new Animation(0.2f, idleLeft);

最佳答案

经过测试似乎如此。 findRegion("iframe" + idleLIndex)和右边的返回相同的对象引用。因此,我认为左侧的翻转也会影响右侧。也许您可以从地图集中创建一个新的TextureRegion对象。它不应该有太多开销。尝试:

idleLeft[i] = new TextureRegion(rubenSprite.findRegion("iframe" + idleLIndex));


这样一来,翻转就不会再影响到右侧了。

关于java - Libgdx:for循环内的.Flip(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29751856/

10-12 04:42