Libgdx : .Flip() 在 for 循环中
Libgdx : .Flip() inside a for loop
我是否正确执行了此操作?我对角色的方向有疑问,但状态管理器工作正常。我不确定这是否是问题所在。我让我的玩家在构造时自动面向右,但他面向左。
我的资产管理器中有两个用于左右动画的数组,原始图像朝右,我声明该数组,然后在左侧数组上翻转相同的图像。左边的数组是否覆盖右边的?
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));
那么翻转应该不会再影响右边了。
我是否正确执行了此操作?我对角色的方向有疑问,但状态管理器工作正常。我不确定这是否是问题所在。我让我的玩家在构造时自动面向右,但他面向左。
我的资产管理器中有两个用于左右动画的数组,原始图像朝右,我声明该数组,然后在左侧数组上翻转相同的图像。左边的数组是否覆盖右边的?
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));
那么翻转应该不会再影响右边了。