Java 获取LibGdx动画的宽度和高度

Java 获取LibGdx动画的宽度和高度,java,libgdx,Java,Libgdx,使用LibGdx动画时,如何获得单个帧的宽度和高度 tallAnim = new Animation(1/10f, atlas.findRegion("runner1"), atlas.findRegion("runner2"), atlas.findRegion("runner3"), atlas.findRegion("runner4")); shortAnim = new Animation(1/10f, atlas.findRegion("short_runner1"), atlas.f

使用LibGdx动画时,如何获得单个帧的宽度和高度

tallAnim = new Animation(1/10f, atlas.findRegion("runner1"), atlas.findRegion("runner2"), atlas.findRegion("runner3"), atlas.findRegion("runner4"));
shortAnim = new Animation(1/10f, atlas.findRegion("short_runner1"), atlas.findRegion("short_runner2"), atlas.findRegion("short_runner3"), atlas.findRegion("short_runner4"));
animation = tallAnim;
我在这两个动画之间切换,当我检查碰撞时,我需要知道当前动画帧的确切宽度/高度

我通常会如何处理这件事:

public Rectangle getBounds(){
return new Rectangle(positionX, positionY, sprite.getWidth(), sprite.getHeight());
}

方法
atlas.findRegion(“path/go/here”)
返回一个TextureRegion。TextureRegion有一个
区域。getTexture()
方法。纹理具有
tex.getWidth()
tex.getHeight()
方法。假设这些帧的宽度相同,您应该可以说类似于
atlas.findRegion(“path/go/here”).getTexture().getWidth()
atlas.findRegion(“path/go/here”).getTexture().getHeight()
。否则,您将需要一些方法来跟踪您的帧,并根据当前帧获得宽度和高度

我猜你的方法现在应该是这样的:

public Rectangle getBounds() {
    return new Rectangle(posX, posY, atlas.findRegion("path/goes/here").getTexture().getWidth(), atlas.findRegion("path/goes/here").getTexture().getHeight())
}
我将提供每个类的一些链接,这样您就可以自己查看,看看它们还有哪些其他方法

TextureAtlas文档:

纹理区域文档:


纹理文档:

TextureAtlas
中没有
.getRegion
.getTexture
。哎呀,当我提到TextureAtlas时,我的问题是
findRegion
。但是,findRegion()返回一个TextureRegion,并且TextureRegion确实具有
getTexture
。你有什么错误吗?如果你是的话,请把它们寄出去。我不知道你的意思。您可以执行
findRegion.getTexture().getWidth()
,但这将返回整个图集的宽度。似乎没有办法得到一个特定的区域。您不能从中
getTexture()
。我尝试了:
返回新矩形(posX,posY,atlas.findRegion(“runner1”).getTexture().getWidth(),atlas.findRegion(“runner1”).getTexture().getHeight()。我现在有一个临时补丁,我在构造函数中设置了一个textureRegion,只要帧大小相同,就可以使用它。但是,如果您真的希望这样做,则从TextureRegion
atlas.findRegion(“runner1”).getRegionWidth()
中选择的
getRegionWidth()和
getRegionHeight()。因为当你得到纹理和它的宽度/高度时,它确实是整个阿特拉斯维度。