gpt4 book ai didi

java - Libgdx 赋予每个纹理图像属性?

转载 作者:太空宇宙 更新时间:2023-11-04 11:13:19 25 4
gpt4 key购买 nike

从今天开始,我像这样加载纹理:

Texture texture = new Texture(path);
Sprite sprite = new Sprite(texture);
batch.draw(sprite.getTexture(), x,y);

就这么简单。

但是现在我遇到了一个小问题,我有很多实体类型,每个实体类型都有不同的大小,但是,我有一个等轴测图,我需要将每个 Sprite 放在图 block 上居中(并非所有 Sprite 都比图 block 大,所以它不会超过 4 个图 block 或其他东西,它们只是比图 block 大一点,并且需要一些偏移)。

所以基本上我需要一个打包系统,它可以打包一个 Sprite 图像(或一组相同大小的图像)和其中包含的属性,其中将有 offsetXoffsetY 所以我可以这样使用:

batch.draw(sprite.getTexture(), x + offsetX, y + offsetY);

LibGDX中有这样的东西吗?

我已经尝试过这样做:

    int x = (i * GameTile.TILE_WIDTH / 2) - (j * GameTile.TILE_WIDTH / 2) - (texture.getWidth() / 2);
int y = (i * GameTile.TILE_HEIGHT / 2) + (j * GameTile.TILE_HEIGHT / 2) - (texture.getHeight() / 2);

ij 是数组中的图 block 位置。

最佳答案

这就是我所做的。选择至少与最大 Sprite 一样大的图像尺寸。将所有 Sprite 源图像设为此尺寸,并根据需要在它们周围放置尽可能多的隐形填充,以使它们在此矩形中居中。使用 LibGDX TexturePacker 的 stripWhitespace 功能。并保持allowRotation关闭。该图集不会比以前大,但现在它具有可以使用的偏移数据。

在运行时,获取对AtlasRegions的引用,而不是隐式转换为TextureRegions。 AtlasRegion 具有您需要的偏移参数。从中减去源图像大小的宽度和高度的一半,然后添加到要绘制它的中心点。

关于java - Libgdx 赋予每个纹理图像属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45758435/

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