【问题标题】:Using LibGDX, how do you have an animation using seperate images ?使用 LibGDX,您如何使用单独的图像制作动画?
【发布时间】:2014-10-07 22:28:02
【问题描述】:

我正在学习如何使用 LibGDX 制作游戏,并且正在尝试制作一个小型平台游戏(使用 Eclipse)。我在主角跑步时制作了 4 张图像,以便在他移动时制作动画。但是,我在网上找不到任何东西来告诉我如何在不使用 SpriteSheet 的情况下制作动画。如何使用 4 张不同的图像制作动画?

【问题讨论】:

  • 有什么理由不想使用 SpriteSheet?
  • 我尝试制作一张,但没能制作出一张有效的(图片宽度不一样)。
  • 我相信你需要让它们在同一个纹理上才能工作,否则 SpriteBatch 绘制操作将失败。不过我不确定。

标签: java android eclipse animation libgdx


【解决方案1】:

您应该使用带有 TextureAtlas 的 TexturePacker。手动添加每个纹理不是正确的方法。

纹理打包器将您的多张图片打包成一张图片。使用如下名称:img_01.png、img_02.png 等,然后将它们全部提取到数组中的一行代码中。

我会在几个小时后回家后发布代码示例。

我实际上有一个单独的类来处理资产的加载:

public abstract class Assets {
private static AssetManager asm = new AssetManager();
private static String assetsPackPath = "assets.pack";
public static TextureAtlas atlas;

public static void load(){
    asm.load(assetsPackPath, TextureAtlas.class);
    asm.finishLoading();

    atlas = asm.get(assetsPackPath);
}

public static void dispose(){
    asm.dispose();
}
}

以及加载动画的代码:

playerRun = new Animation(1/10f, Assets.atlas.findRegions("run"));
playerRun.setPlayMode(Animation.PlayMode.LOOP);

我原来的动画图片是run_001.png, run_002.png, ...

因为您的文件名具有 name_0001.png 格式,所以纹理打包器会将动画关键帧放在一个文件中,并且它们都有一个名称“name”和一个附加参数“index”,即文件名中的数字,例如 001 , 002, 003 等

Assets.atlas.findRegions("run") 返回一个包含关键帧的数组。

【讨论】:

    【解决方案2】:

    首先:您不应该使用不同的图像。也许对你的玩家来说这并不重要(因为只有一个),但通常你应该总是使用精灵表,也就是TextureAtlas

    但是,使用不同的纹理也可以不使用它。

    TextureRegion tex1 = new TextureRegion(new Texture("play_anim_1"));
    TextureRegion tex2 = new TextureRegion(new Texture("play_anim_2"));
    TextureRegion tex3 = new TextureRegion(new Texture("play_anim_3"));
    TextureRegion tex4 = new TextureRegion(new Texture("play_anim_4"));
    
    Animation playerAnimation = new Animation(0.1f, tex1, tex2, tex3, tex4);
    

    【讨论】:

    • 我已经面对来自 libgdx JAVA 中的分离图像的绘制动画。我认为,您的建议很好,但我不知道如何实施。如果可能,请帮助我...
    猜你喜欢
    • 2013-09-14
    • 2014-02-08
    • 2016-11-02
    • 2016-06-23
    • 1970-01-01
    • 2020-03-14
    • 2017-07-04
    • 2023-03-18
    • 2012-02-11
    相关资源
    最近更新 更多