Libgdx补间不能在Android上运行

时间:2014-02-27 21:19:43

标签: java android eclipse libgdx tween

我正在使用libgdx开发我的第一个Android游戏,使用这个惊人的教程(http://www.kilobolt.com/day-11-supporting-iosandroid--splashscreen-menus-and-tweening.html)作为基础。一切正常,除了我在启动画面中使用的补间,以显示我的“公司”的徽标。奇怪的是,徽标在桌面版本中运行得很好,但在Android版本中没有显示。

我正在使用他们在本教程中开发的应用程序中使用的相同类。顺便说一句,这个应用程序的启动画面在两个版本中都能正常工作。

我比较了我的应用程序和教程的应用程序,但我发现除了包浏览器之外没有任何差异。我不知道这是否意味着什么:

http://i1223.photobucket.com/albums/dd507/victormmenendez/tut.jpg

package com.victor.Screens;

import aurelienribon.tweenengine.BaseTween;
import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenCallback;
import aurelienribon.tweenengine.TweenEquations;
import aurelienribon.tweenengine.TweenManager;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.victor.TweenAccessors.SpriteAccessor;
import com.victor.FZHelpers.AssetLoader;
import com.victor.FZombies.FZGame;

public class SplashScreen implements Screen
{

    private TweenManager manager;
    private SpriteBatch batcher;
    private Sprite sprite;
    private FZGame game;

    public SplashScreen(FZGame game)
    {
        this.game = game;
    }

    @Override
    public void show()
    {
        sprite = new Sprite(AssetLoader.logo);
        sprite.setColor(1, 1, 1, 0);

        float width = Gdx.graphics.getWidth();
        float height = Gdx.graphics.getHeight();
        float desiredWidth = width * .4f;
        float scale = desiredWidth / sprite.getWidth();

        sprite.setSize(sprite.getWidth() * scale, sprite.getHeight() * scale);
        sprite.setPosition((width / 2) - (sprite.getWidth() / 2), (height / 2) - (sprite.getHeight() / 2));
        setupTween();
        batcher = new SpriteBatch();

    }

    private void setupTween()
    {
        Tween.registerAccessor(Sprite.class, new SpriteAccessor());
        manager = new TweenManager();

        TweenCallback cb = new TweenCallback()
        {
            @Override
            public void onEvent(int type, BaseTween<?> source)
            {
                game.setScreen(new GameScreen());
            }
        };

        Tween.to(sprite, SpriteAccessor.ALPHA, .8f).target(1).ease(TweenEquations.easeInOutQuad).repeatYoyo(1, .4f).setCallback(cb).setCallbackTriggers(TweenCallback.COMPLETE).start(manager);
    }

    @Override
    public void render(float delta)
    {
        manager.update(delta);
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
        batcher.begin();
        sprite.draw(batcher);
        batcher.end();
    }
}

非常感谢你的帮助。对不起,如果我在任何时候都无法解释自己,但英语不是我的主要语言。如果您需要任何额外的代码,我可以添加它。

1 个答案:

答案 0 :(得分:2)

您需要确保在Build Path中导出补间jar文件。对于Eclipse,您可以右键单击该项目,选择&#34; Build Path&#34; &GT; &#34;配置构建路径&#34;,转到&#34;订单和导出&#34;右侧的选项卡,并确保在列表中检查补间jar文件。