当前位置: 首页 > 知识库问答 >
问题:

Libgdx V1.3.1飞溅屏幕吐温错误:线程中的异常"LWJGL应用程序"java.lang.运行时异常:没有找到目标的吐温访问器

方航
2023-03-14

在我的android、桌面和html libgdx项目中,我很难实现Universal Tween引擎(请注意,这是使用gradle的libgdx版本1.3.1的一个问题)。我按照github wiki上的说明,使用了下面链接中显示的fileTree方法。https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine

我设法将核心和ANDROID项目的构建路径设置为包括两个tween engine JAR。这些类很容易导入,但在运行桌面项目时,我会遇到以下错误:

线程“LWJGL应用程序”java中出现异常。lang.RuntimeException:在AurelianRibon找不到目标的TweenAccessor。特温尼。吐温。在Aurelianribon建立(Tween.java:787)。特温尼。吐温。在Aurelianribon建立(Tween.java:79)。特温尼。伯瑟温。从Aurelianribon开始(BaseTween.java:85)。特温尼。特温经理。在Aurelianribon添加(TweenManager.java:61)。特温尼。伯瑟温。从com开始(BaseTween.java:98)。无穷大。杀死云彩。屏幕。泼洒在com上展示(Splash.java:58)。糟糕的逻辑。gdx。游戏在com上设置屏幕(Game.java:61)。无穷大。杀死云彩。杀死云彩。在com上创建(KillTheClouds.java:14)。糟糕的逻辑。gdx。后端。lwjgl。LWJglaplication。com上的mainLoop(LwjglApplication.java:136)。糟糕的逻辑。gdx。后端。lwjgl。LwjglApplication 1美元。运行(LwjglApplication.java:114)

这是我的密码

Splash.java

package com.infinitybit.killtheclouds.Screens;

import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenManager;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.infinitybit.killtheclouds.KillTheClouds;
import com.infinitybit.killtheclouds.TweenStuff.SplashAccessor;

public class Splash implements Screen {

    public static int SCREEN_WIDTH = Gdx.graphics.getWidth();
    public static int SCREEN_HEIGHT = Gdx.graphics.getHeight();

    private KillTheClouds game;

    private SpriteBatch splashpaper;
    private Sprite splashimage;

    private TweenManager tweenManager;

    public Splash(KillTheClouds game) {

        this.game = game;

    }

    @Override
    public void show() {

        // TweenSTUFF
        tweenManager = new TweenManager();
        Tween.registerAccessor(Sprite.class, new SplashAccessor());

        splashpaper = new SpriteBatch();

        Texture splashTexture = new Texture("images/splash/logo.png");
        splashimage = new Sprite(splashTexture);

        // image size
        splashimage.setSize(SCREEN_WIDTH / 1.5f, SCREEN_HEIGHT / 2);
        // center image
        splashimage.setPosition(SCREEN_WIDTH / 2 - splashimage.getWidth() / 2,
                SCREEN_HEIGHT / 2 - splashimage.getHeight() / 2);

        Tween.set(splashTexture, SplashAccessor.ALPHA).target(0)
                .start(tweenManager);

        Tween.to(splashTexture, SplashAccessor.ALPHA, 3).target(1)
                .start(tweenManager);

        Tween.to(splashTexture, SplashAccessor.ALPHA, 2).target(0).delay(2)
                .start(tweenManager);

    }

    @Override
    public void render(float delta) {

        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        // update tween
        tweenManager.update(delta);

        splashpaper.begin();

        splashimage.draw(splashpaper);

        splashpaper.end();

    }

    @Override
    public void resize(int width, int height) {

    }

    @Override
    public void hide() {

    }

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void dispose() {

    }

}

喷溅存取器。JAVA

package com.infinitybit.killtheclouds.TweenStuff;

import aurelienribon.tweenengine.TweenAccessor;

import com.badlogic.gdx.graphics.g2d.Sprite;


public class SplashAccessor implements TweenAccessor<Sprite> {

    public static final int ALPHA = 0;

    @Override
    public int getValues(Sprite target, int tweenType, float[] returnValues) {

        switch (tweenType) {

        case ALPHA:
            returnValues[0] = target.getColor().a;
        return 1;

        default:
            assert false;
        return -1;

        }

    }

    @Override
    public void setValues(Sprite target, int tweenType, float[] newValues) {

        float defRed = target.getColor().r;
        float defGreen = target.getColor().g;
        float defBlue = target.getColor().b;

        switch(tweenType){

            case ALPHA:
                target.setColor(defRed, defGreen, defBlue, newValues[0]);
            break;

            default:
                assert false;

        }

    }


}

共有1个答案

蓬新
2023-03-14

你的飞溅纹理不是雪碧的类型,它是纹理!!!

这就是你的问题。从splashTexture创建splashSprite,并将其命名为:

Tween.to(splashSprite, SplashAccessor.ALPHA, 3).target(1)
            .start(tweenManager);

希望有帮助!

 类似资料:
  • 从终端执行jar时,我得到以下信息: 我搜索了他的错误,发现了一些相同的执行输出错误,但没有解决我的情况。 下面详细介绍了文件的位置、清单内容、所采取的终端步骤以及所涉及的两个类文件的代码内容。 文件位置 > SWT库 舱单 班级 普通人。jar(参见下面的创建): Manifest.txt内容: 终端动作 > 目录更改 . jar创建 舱单检查 普通人。jar执行 密码 用户nterface.c

  • 我很难理解这个代码有什么问题。Dr.Java一切都很好,但是在另一个名为edhesive的代码运行平台上(我就是在这个平台上被分配这个项目的),它给我一个错误。我已经检查了所有我认为出错的地方,但仍然不知道哪里出了问题。 在edhesive上运行后,我得到了这个错误 有人能帮帮我吗?

  • 我已经编写了一段代码,其中我制作了一个接口和一个实现该接口的类。现在,当我运行代码时,我给了我自己2个选项,即1输入字符串,2退出。现在,当我运行代码时,如果我选择1,它会让我放入字符串,但在此之后,当我按0时,它会给我错误:Exception in thread“main”java.lang。有人能帮我找出我在这里遗漏了什么吗?下面是代码: StackTrace: 线程“main”java.la

  • 我正在从事JavaFX项目,我创建了两个FXML文件,我想将另一个窗格加载到主窗格,即边框窗格。我想将另一个窗格加载到边框窗格中心区域! 这是我的项目的切入点,这是一个Java文件 之后,将显示显示“我的边框”窗格的主FXML文件 我设置了一个按钮,将特定窗格显示到边框窗格中心区域。 这是我的控制器类的边界窗格包含类 这是我想显示在边界窗格中心区域的FXML文件。 但是当我点击按钮,给我一堆错误!

  • 我得到java.lang.NoSuch方法例外请帮助我在这... 这就是我得到的错误- 错误:java.lang.运行时异常:java.lang.NoSuchmethod异常:com.nielsen.GRFE.processor.mapreduce.占位符$PlaceholderMapper.()在org.apache.hadoop.util.Reflse Utils.new实例(Reflse U

  • 我在我的Android应用程序中面临奇怪的问题。它总是给我错误的名字 JAVAlang.RuntimeException:无法实例化应用程序io。日本动画。应用程序。应用程序:java。lang.ClassNotFoundException:在路径:DexPathList[[zip文件”//data/app/io.hitanime.app-957U27HR57arXVvYGSCFSQ==/base