【发布时间】:2015-06-21 09:08:30
【问题描述】:
我肯定忽略了一些东西,但是在 LibGDX 中是否有一个容易绘制的例子,例如只有半个精灵?我原本以为我可以用 setBounds() 来做到这一点,但这会扭曲精灵并且不会剪辑它。
【问题讨论】:
-
不是内置的,需要修改TextureRegion/Sprite的UVs。
我肯定忽略了一些东西,但是在 LibGDX 中是否有一个容易绘制的例子,例如只有半个精灵?我原本以为我可以用 setBounds() 来做到这一点,但这会扭曲精灵并且不会剪辑它。
【问题讨论】:
不知道这是否是您想要的,或者是最有效的方式,但这就是我碰巧读到您的问题,我希望我能理解并为您服务:
变量类:
Texture testTexture = new Texture (Gdx.files.internal("badlogic.jpg"));
以渲染方法为例:
//batch is a SpriteBatch.
batch.draw(testTexture, 50, 50,
0, 0,
testTexture.getWidth() /2,
testTexture.getHeight());
这是 SrpiteBatch.class 中的方法:
public void draw (Texture texture, float x, float y, int srcX, int srcY, int srcWidth, int srcHeight)
现在以你的精灵为例(简单测试):
batch.draw(yourSprite.getTexture(), 50, 50,
0, 0, yourSprite.getTexture().getWidth() /2,
yourSprite.getTexture().getHeight() );
编辑说明:
重新查看答案,我认为这样说会很好,只显示你所说的纹理的一个区域,但也许应该注意纹理保持相同的大小,我这样说是因为如果您使用纹理来检测碰撞,请记住,虽然显示一半,但纹理仍然与原始纹理一样大
【讨论】:
还有剪刀类:
我想我尝试过一次……但它在台式机上运行良好,而不是在 android 上运行良好……所以我没有使用它。也许它同时修复了。
【讨论】: