2017-02-13 40 views
1

我有一个对象,我从下到上调整大小。限制对象在调整大小时脱离屏幕 - 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; 
     } 

这里的精灵在更新调用这个后生长出来的画面()。我用钳()停止screen.But上的代码没有影响在这个sticksprite。 为什么clamp()在这里不起作用? 如何限制Sprite在屏幕内有效调整大小?

我正在绘制这样的精灵。

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); 
     } 

回答

0

限制条件。首先检查你的图像是否在屏幕之外,如果没有,则通过一个小限制增加图像大小,否则停止增加图像大小。

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

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