LibGDX-绘制剪裁精灵
我肯定忽略了一些东西,但是否有一个易于绘制的示例,例如LibGDX中只有半个精灵?我原本以为我可以用setBounds()来实现这一点,但这会扭曲精灵,不会将其剪裁。不知道这是您想要的,还是最有效的方式,但这正是我读到您的问题时所做的,我希望我能理解并为您服务: 变量类: 例如,在渲染方法中:LibGDX-绘制剪裁精灵,libgdx,sprite,Libgdx,Sprite,我肯定忽略了一些东西,但是否有一个易于绘制的示例,例如LibGDX中只有半个精灵?我原本以为我可以用setBounds()来实现这一点,但这会扭曲精灵,不会将其剪裁。不知道这是您想要的,还是最有效的方式,但这正是我读到您的问题时所做的,我希望我能理解并为您服务: 变量类: 例如,在渲染方法中: //batch is a SpriteBatch. batch.draw(testTexture, 50, 50, 0, 0,
//batch is a SpriteBatch.
batch.draw(testTexture, 50, 50,
0, 0,
testTexture.getWidth() /2,
testTexture.getHeight());
这是SrpiteBatch.class中的方法:
公共空心绘制(纹理纹理、浮点x、浮点y、int-srcX、int
srcY,int srcWidth,int srcHeight)
现在,以您的sprite(简单测试)为例:
编辑注:
为了重新审视答案,我想说这样做会很好,就像你说的那样,只显示纹理的一个区域,但也许应该注意,纹理仍然保持相同的大小,我这样说是因为如果你使用纹理来检测碰撞,请记住,尽管显示了一半,纹理仍然比原始纹理大还有剪刀类:
我想我试过一次…但它在桌面上运行得很好,而在android上运行得不好…所以我没有使用它。也许它同时被修复了。它不是内置的。您需要修改纹理区域/精灵的UV。
//batch is a SpriteBatch.
batch.draw(testTexture, 50, 50,
0, 0,
testTexture.getWidth() /2,
testTexture.getHeight());
batch.draw(yourSprite.getTexture(), 50, 50,
0, 0, yourSprite.getTexture().getWidth() /2,
yourSprite.getTexture().getHeight() );