在调整LibGdx大小时限制对象离开屏幕

时间:2017-02-13 06:55:04

标签: libgdx

我有一个对象,我正在从下到上调整大小。

private void setStickSize() {
    if (MyInputProcessor.isTap) {
        stickSprite.setSize(stickSprite.getWidth(),stickSprite.getHeight()+500.0f); 
       stickSprite.setY(MathUtils.clamp(stickSprite.getY(),0,700));   
       // MyInputProcessor.isTap = false;
       }

这里的精灵在update()中调用后会长出屏幕。我使用clamp()在屏幕内停止这个sticksprite。但是对代码没有任何影响。 为什么clamp()不能在这里工作? 如何在屏幕内有效限制精灵大小调整?

我正在画这样的精灵。

    private void drawStick() {   
     stickSprite.setPosition(stick.getX(),stick.getY());

     batch.draw(
            stickSprite.getTexture(),stick.getX(),stick.getY(),
             stickSprite.getWidth()/2 ,stickSprite.getHeight()/2,
             stickSprite.getWidth(),                                                  
             stickSprite.getHeight()*0.01f,                                                  
             stickSprite.getScaleX(),stickSprite.getScaleY(), 0,                  
            stickSprite.getRegionX(),stickSprite.getRegionY(),  
            stickSprite.getRegionWidth(), stickSprite.getRegionHeight(),
             false,false);
        }

1 个答案:

答案 0 :(得分:0)

与条件绑定。首先检查您的图像是否在屏幕外,如果没有,则将图像尺寸增加一小部分,否则停止增加图像尺寸。

如果我有一个图像(精灵)并且我增加了该图像的大小,那么我们就可以在大小增量之前设置一个边界。

if(sprite.getY()+sprite.getHeight()<Gdx.graphics.getHeight()){
      float currentHeight=sprite.getHeight();
      currentHeight++;
      sprite.setSize(sprite.getWidth(),currentHeight);
}