我有一个spritesheet(由美妙的TexturePacker打包),看起来像这样:
并且动画作为动画使用the current code效果很好。 然而,当动画移动到边界框较小的框架时(例如,当腿靠近时,当跪下等时),图像变形,使得较小的边界框填充精灵的边界框。
我该如何解决这个问题?
上面的spritesheet是从Adobe Flash动画示例中提取帧。
答案 0 :(得分:3)
更简单的方法: 您可以使所有纹理区域的大小相同。
很难: 保持这样,但你需要保存并计算每个要绘制的纹理区域的大小和位置。
我个人建议您使用第一个选项,只需使所有图像大小相同。
答案 1 :(得分:0)
无法给你一个链接,但这就是我为这些情况所做的事情
AtlasSprite
数组然后在我的render
方法
public void render(float delta) {
atlasSprite = animation.getKeyFrame(statetime, Animation.LOOPING);
atlasSprite.draw(batcher)
};
在我的update
方法中,它给出了显示的当前图像的精确矩形边界。由于您已经剥离了空格并使用了AtlasSprite
,因此边界将没有空白空格。
public void update(float delta) {
bounds = sprite.getBoundingRectangle();
}
P.S。这只是一个伪代码,许多语法错误可能只是为了给你一个想法