首页 > 解决方案 > LibGDX 中的 Actions() 每次点击精灵都会累积错误

问题描述

操作会累积一个错误,该错误会随着每次点击而增加。

我正在制作游戏。当我单击精灵时,会出现一个对话框。这个对话框带有我通过 Actions() 制作的动画。最初,对话框平滑地打开和缩放,也平滑地关闭。但是在对话框打开和关闭大约 10 次后,错误变得明显。对话框开始突然打开和关闭。我点击精灵的次数越多,对话框的动画就越撕裂。

@Override
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
    vector2 = new Vector2(screenX, Gdx.graphics.getHeight() - screenY);

if (sprite_1.getBoundingRectangle().contains(vector2)) {
    switch (serverClass.point1) {
        case 0:
            Gdx.app.log("1", "drops");

win_dialog_alpha_white.addAction(Actions.fadeIn(.2f)); //this window covers all sprites
stage_dialogs.addActor(win_dialog_01_1);

win_dialog_01_1.setModal(true);

win_dialog_01_1.addAction(
    Actions.fadeOut(0));

win_dialog_01_1.addAction(Actions.parallel(
    Actions.fadeIn(.2f)
    , Actions.scaleTo(1.05f, 1.05f, .2f)));

win_dialog_01_1.addAction(Actions.sequence(
    Actions.delay(.2f)
    , Actions.scaleTo(1, 1, .2f)));

button_close.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
    win_dialog_alpha_white.addAction(Actions.fadeOut(.3f));
    win_dialog_01_1.setModal(false);
    win_dialog_01_1.addAction(Actions.parallel(
        Actions.fadeOut(.4f)
            , Actions.scaleTo(1.05f, 1.05f, .2f)));
    win_dialog_01_1.addAction(Actions.sequence(
        Actions.delay(.2f)
            , Actions.scaleTo(1, 1, .2f)));
                    }
    });
    break;

“win_dialog_01_1”是一个单独的类(扩展窗口),但按钮“button_close”是在主类中创建的,然后添加到“win_dialog_01_1”的实例中。

我找不到错误在哪里累积。

标签: javaandroidlibgdx

解决方案


推荐阅读