Libgdx : .Flip() 在 for 循环中



我是否正确实现了这一点?我的角色方向有问题,但状态管理器工作正常。我不确定这是否是问题所在。我的球员在构建时自动朝右,但他朝左。

我的资源管理器中有两个用于左右动画的数组,原始图像朝右,我声明该数组,然后在左侧数组上翻转相同的图像。左边的数组会覆盖右边的数组吗?

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) 和 for 右侧返回相同的对象引用。所以我认为左边的翻转也会影响右边。也许您可以从图集中创建一个新的 TextureRegion 对象。它应该不会有太多开销。尝试:

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

那么翻转应该不再影响右边了。