我有一个对象,我正在从下到上调整大小。
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);
}
答案 0 :(得分:0)
与条件绑定。首先检查您的图像是否在屏幕外,如果没有,则将图像尺寸增加一小部分,否则停止增加图像尺寸。
如果我有一个图像(精灵)并且我增加了该图像的大小,那么我们就可以在大小增量之前设置一个边界。
if(sprite.getY()+sprite.getHeight()<Gdx.graphics.getHeight()){
float currentHeight=sprite.getHeight();
currentHeight++;
sprite.setSize(sprite.getWidth(),currentHeight);
}