从2D数组中获取一行

时间:2016-04-18 20:04:37

标签: java arrays libgdx

我使用的是LibGDX,我有一个位于2D数组上的characterSheet。 基本上它有4行,第一行有8列,第二行有5行,接下来有两行重复。我想使用嵌套的for循环和每行的重复来获取第一行中的所有元素。这是我第一行的内容。有没有更好的方法呢?

Array<TextureRegion> frames = new Array <TextureRegion>();
    // Walking animation
    for( int row =0; row< 1; row ++)
    {
        for(int col=0 ; col<8; col++)
        {
            frames.add(new TextureRegion(getTexture(), 0,0,64,64));
        }
        walking = new Animation(0.25F, frames);
        frames.clear();
    }

1 个答案:

答案 0 :(得分:2)

执行此操作的最佳方法是使用TextureAtlas:

  • 使用下划线命名您的帧,例如walk_01.png,walk_02.png,walk_03.png用于步行动画,run_01.png,run_02.png,run_03.png用于运行动画。
  • 按照here所述使用TexturePacker创建TextureAtlas并打包包含以前重命名的图像文件的文件夹
  • 加载您的地图集,建议您使用AssetManaget
  • 使用atlas findRegions方法创建动画:
Animation walk = new Animation(1/30f, atlas.findRegions("walk"), Animation.PlayMode.LOOP);

这样你就不需要计算位置了,TextureAtlas会为你做那个。