gpt4 book ai didi

java - libGDX 动画纹理区域

转载 作者:太空狗 更新时间:2023-10-29 16:30:09 25 4
gpt4 key购买 nike

我有一个看起来像这样的 Sprite 图像纹理:Kirby Run

我正在尝试为它制作动画。我将这段代码设置为将每个帧存储到一个 TextureRegion 变量中,然后将所有帧存储到一个 Animation TextureRegion 数组中

//AssetLoader class
runTexture = new Texture("kirbyrun.png");
runTexture.setFilter(TextureFilter.Nearest,TextureFilter.Nearest);

//Run Hiro
hiro1 = new TextureRegion(runTexture,0,55,37,55);
hiro1.flip(false,true);
hiro2 = new TextureRegion(runTexture,37,55,44,55);
hiro2.flip(false,true);
hiro3 = new TextureRegion(runTexture,81,55,44,55);
hiro3.flip(false,true);
hiro4 = new TextureRegion(runTexture,129,55,46,55);
hiro4.flip(false,true);
hiro5 = new TextureRegion(runTexture,176,55,41,55);
hiro5.flip(false,true);
hiro6 = new TextureRegion(runTexture,216,55,41,55);
hiro6.flip(false,true);
hiro7 = new TextureRegion(runTexture,257,55,41,55);
hiro7.flip(false,true);
hiro8 = new TextureRegion(runTexture,301,55,42,55);
hiro8.flip(false,true);

TextureRegion[] run = {hiro1,hiro2,hiro3,hiro4,hiro5,hiro6,hiro7,hiro8};
hiroRunAnimation = new Animation<TextureRegion>(0.5f,run);
hiroRunAnimation.setPlayMode(Animation.PlayMode.LOOP);

我目前使用的是 yDown 坐标系,这就是我翻转图像的原因。

在尝试使用这段代码渲染出来之后:

TextureRegion currentFrame = AssetLoader.hiroRunAnimation.getKeyFrame(runTime);

sb.begin();

sb.draw(currentFrame,player.getX(),player.getY(),player.getWidth(),player.getHeight());
sb.end();

它只是打开了一张方 block 图片而不是 Kirby: enter image description here

很明显我做错了什么,我猜测它与我的 TextureRegion 部分有关,也许是我的 X、Y 坐标或错误但我不确定如何解决这个问题,因为我使用 spritecow.com 获取这些坐标.我假设左上角是 (0,0) 并且正 Y 表示向下移动图像。我怎样才能让 Kirby 真正出现而不是这些盒子?或者将每个帧图像分成一个单独的 .png 文件并只使用 Texture 而不是 TextureRegion 会更容易,所以我不需要指定一个明确的区域。那么我可以使用 Animation 还是那样效果不佳?

最佳答案

我没看错吗,您“硬编码”了 Sprite 的坐标?这不是一个好主意,libGDX 有更舒适的方法来解决这个问题:Texture Packer .

基本上,您要做的是将单个 Sprite 放入一个文件夹中,然后运行纹理打包器脚本将它们全部合并。您还将获得一个带有 Sprite 坐标的 json 文件。您可以使用 Assets 管理器轻松加载它们。我在这里创建了一个示例:https://gist.github.com/reime005/87e1ed30548be31a632292a604f397ef

关于java - libGDX 动画纹理区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41581973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com