i have issue implementing tweening in libgdx program. issue similar yet different this. following video guide on , code identical error no tweenaccessor found target - have tried looking online solutions none has worked , wrongfully setting tween class.
code:
public class splashscreen implements screen { ... private sprite splash; private tweenmanager tweenmanager; ... @override public void show() { batch = new spritebatch(); tweenmanager = new tweenmanager(); tween.registeraccessor(splashscreen.class, new spriteaccessor()); system.out.println(tween.getregisteredaccessor(splashscreen.class)); texture splashtexture = new texture(gdx.files.internal("img/splash.png")); splash = new sprite(splashtexture); splash.setsize(constants.app_width, constants.app_height); tween.set(splash, spriteaccessor.alpha).target(0).start(tweenmanager); // throws error tween.to(splash, spriteaccessor.alpha, 2).target(1).start(tweenmanager); } @override public void render(float delta) { gdx.gl.glclearcolor(0, 0, 0, 1); gdx.gl.glclear(gl20.gl_color_buffer_bit); tweenmanager.update(delta); batch.begin(); splash.draw(batch); batch.end(); } ... accessor:
public class spriteaccessor 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) { switch(tweentype) { case alpha: target.setcolor(target.getcolor().r, target.getcolor().g, target.getcolor().b, newvalues[0]); break; default: assert false; } } logcat:
tween.spriteaccessor@1b3a40d // note exception in thread "lwjgl application" java.lang.runtimeexception: no tweenaccessor found target @ aurelienribon.tweenengine.tween.build(tween.java:787) @ aurelienribon.tweenengine.tween.build(tween.java:79) @ aurelienribon.tweenengine.basetween.start(basetween.java:85) @ aurelienribon.tweenengine.tweenmanager.add(tweenmanager.java:61) @ aurelienribon.tweenengine.basetween.start(basetween.java:98) @ screens.splashscreen.show(splashscreen.java:36) @ com.badlogic.gdx.game.setscreen(game.java:61) @ com.simcas.game.rungame.create(rungame.java:12) @ com.badlogic.gdx.backends.lwjgl.lwjglapplication.mainloop(lwjglapplication.java:143) @ com.badlogic.gdx.backends.lwjgl.lwjglapplication$1.run(lwjglapplication.java:120) as can see (as in linked question) tween set class print shows. doing wrong here?
you need register spriteaccessor sprite class not splashscreen class. tweens performing on sprite not on screen.
change
tween.registeraccessor(splashscreen.class, new spriteaccessor()); to
tween.registeraccessor(sprite.class, new spriteaccessor());
Comments
Post a Comment