繁体   English   中英

从2D阵列获取一行

[英]Getting one row from a 2D array

我正在使用LibGDX,并且我的characterSheet位于2D数组的for上。 基本上有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();
    }

进行此恕我直言的最佳方法是使用TextureAtlas:

  • 使用下划线为帧命名,即walk_01.png,walk_02.png,walk_03.png(用于行走动画),run_01.png,run_02.png,run_03.png(用于运行动画)。
  • 创建使用TexturePacker所描述的TextureAtlas 这里和包装包含您以前已重命名的图像文件的文件夹
  • 加载地图集,建议您使用AssetManaget
  • 使用Atlas findRegions方法创建动画:

Animation walk = new Animation(1/30f, atlas.findRegions("walk"), Animation.PlayMode.LOOP);

这样,您就无需计算位置,TextureAtlas将为您完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM