Java 获取LibGdx动画的宽度和高度
使用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
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,只要帧大小相同,就可以使用它。但是,如果您真的希望这样做,则从TextureRegionatlas.findRegion(“runner1”).getRegionWidth()
中选择的getRegionWidth()和getRegionHeight()。因为当你得到纹理和它的宽度/高度时,它确实是整个阿特拉斯维度。