LibGDX - 绘制剪切的精灵

时间:2015-04-15 12:01:14

标签: libgdx sprite

我肯定会忽略一些东西,但是在LibGDX中是否有一个易于绘制的例子只有半个精灵?我原本以为我可以使用setBounds()执行此操作,但这会使sprite失真并且不会剪切它。

2 个答案:

答案 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课程:

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/ScissorStack.html

我想我曾尝试过一次......但它在桌面上运行良好,而不是在android上......所以我没有使用它。也许它同时被修复了。