gpt4 book ai didi

android - ScaleTo 在 Libgdx 中不工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:28 24 4
gpt4 key购买 nike

我正在尝试使用 Action 来缩放我的 Actor。但它不起作用。我只希望我的 Actor 在给定时间内增加/减少它的大小。

Actor 将等待我给 ScaleTo 的 2 秒持续时间。它根据我给它的 MoveTo Action 正确移动。

public class SpriteTest extends Actor {
private Sprite sprite;
private TextureAtlas atlas;
Rectangle boundsd = new Rectangle();

public SpriteTest(FirstGame game) {
//super(game);
Gdx.app.log( FirstGame.LOG, "spritetest's costructor" );
atlas = new TextureAtlas(Gdx.files.internal("pages-info.atlas"));
sprite = atlas.createSprite("Plus");
}

public void draw(SpriteBatch batch,float parentAlpha) {
batch.draw(sprite, x, y);
}

// We are adding the actor to the stage in another class

public class LevelScreen extends AbstractScreen {
private Jumper2D jumper2d;
SpriteTest obstacled = new SpriteTest(game);

public LevelScreen(FirstGame game) {
super(game);
}

@Override
protected boolean isGameScreen() {
return true;
}

@Override
public void show() {
super.show();

stage.addActor(obstacled);
obstacled.action
(Forever.$
(Sequence.$
(ScaleTo.$(1.4f, 1.4f, 2),(MoveTo.$(100,120, 3f) ))
));
jumper2d = Jumper2D.create(getAtlas());
stage.addActor(jumper2d);
stage.draw();
}

public void render () {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
stage.draw();
}
}

感谢任何帮助

最佳答案

SpriteTestdraw() 方法忽略了Actor 上的任何缩放或旋转设置。您需要绘制适当缩放/旋转/调整大小的 Sprite 。 (您可能还需要设置 Actor 的 x、y、宽度和高度 --- 请参见 setBounds )

public void draw(SpriteBatch batch, float parentAlpha)
{
final Color c = getColor();
batch.setColor(c.r, c.g, c.b, c.a * parentAlpha);
batch.draw(sprite, getX(), getY(), getOriginX(), getOriginY(), getWidth(), getHeight(), getScaleX(), getScaleY(), getRotation());
}

关于android - ScaleTo 在 Libgdx 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15138504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com