Хобрук: Ваш путь к мастерству в программировании

Анимация libgdx не работает на Android

Я разрабатываю свою первую игру для Android с помощью libgdx, используя в качестве основы этот замечательный учебник (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

Вам нужно убедиться, что вы экспортируете JAR-файлы твинов в путь сборки. Для Eclipse вы можете щелкнуть проект правой кнопкой мыши, выбрать «Путь сборки» > «Настроить путь сборки», перейти на вкладку «Заказ и экспорт» с правой стороны и убедиться, что JAR-файлы анимации отмечены в список там.

11.03.2014
  • Спасибо за ваш ответ. Я проверил это, и на самом деле один из файлов jar не был проверен, но это не исправило 13.03.2014
  • На самом деле похоже, что мой собственный проект не экспортируется, поэтому я думаю, что это не проблема. Если это работает на рабочем столе, но не на Android, я бы посоветовал убедиться, что ширина и высота текстуры равна степени 2 (например, 16, 32, 64... и т. д.). Иногда, в зависимости от версии OpenGL, которую использует ваше устройство Android, потребуются текстуры со степенью двойки. Это привело к тому, что некоторые вещи не отображались для меня в моем Nexus 7 или отображались с белым блоком. Проверьте это в первую очередь. 13.03.2014
  • Новые материалы

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..