我肯定会忽略一些东西,但是在LibGDX中是否有一个易于绘制的例子只有半个精灵?我原本以为我可以使用setBounds()执行此操作,但这会使sprite失真并且不会剪切它。
答案 0 :(得分:0)
不知道这是你想要的,还是最有效的方式,但这就是我读到你的问题,我希望我理解并为你服务:
变量类:
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(纹理纹理,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() );
编辑注意:
重新看一下答案,我觉得这样做很好,就像你说的那样只显示纹理的一个区域,但也许应该注意纹理保持相同的大小,我这样说是因为如果您使用纹理来检测碰撞,请记住,虽然半显示,但纹理仍然比原始
大答案 1 :(得分:0)
还有Scissors课程:
我想我曾尝试过一次......但它在桌面上运行良好,而不是在android上......所以我没有使用它。也许它同时被修复了。