2017-02-13 41 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); 
} 
相關問題