Форум программистов, компьютерный форум CyberForum.ru

Ошибка при работе с Tween Engine - Android

Восстановить пароль Регистрация
 
Matanoid
10 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 31
28.07.2016, 15:50     Ошибка при работе с Tween Engine #1
Добрый День! Пишу на ligGdx Начал разбираться с tween engine. Использую его что бы отобразить белую заставку в начале игры. Программа выдает ошибку. Так как я первый раз использую даную фичу то не могу понять в чем ошибка. Помогите пожалуйста.

Главный класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.mygdx.flygame;
 
import com.badlogic.gdx.Game;
import com.mygdx.flygame.loader.ResourseLoader;
import com.mygdx.flygame.screens.SplashScreen;
 
public class FlyGame extends Game{
    
    @Override
    public void create () {
        ResourseLoader.load();
        setScreen(new SplashScreen(this));
    }
 
    
    @Override
    public void dispose () {
        super.dispose();
        ResourseLoader.dispose();
    }
}
Сам экран заставки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.mygdx.flygame.screens;
 
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.mygdx.flygame.FlyGame;
import com.mygdx.flygame.loader.ResourseLoader;
import com.mygdx.flygame.tools.SpriteAccessor;
 
import aurelienribon.tweenengine.BaseTween;
import aurelienribon.tweenengine.Tween;
import aurelienribon.tweenengine.TweenCallback;
import aurelienribon.tweenengine.TweenEquations;
import aurelienribon.tweenengine.TweenManager;
 
public class SplashScreen implements Screen {
 
    private TweenManager manager;
    private SpriteBatch batch;
    private Sprite sprite;
    private FlyGame game;
 
    public SplashScreen(FlyGame game) {
        this.game = game;
    }
 
    @Override
    public void show() {
        sprite = new Sprite(ResourseLoader.logo);
        sprite.setColor(1, 1, 1, 0);
 
        float width = Gdx.graphics.getWidth();
        float height = Gdx.graphics.getHeight();
        float desiredWidth = width * 0.7f;
        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();
        batch = new SpriteBatch();
 
 
    }
 
    private void setupTween(){
        Tween.registerAccessor(Sprite.class, new SpriteAccessor());
        manager = new TweenManager();
 
        TweenCallback callback = new TweenCallback() {
            @Override
            public void onEvent(int type, BaseTween<?> source) {
                // здесь мы будем вызывать GameScreen
            }
        };
 
        Tween.to(sprite, SpriteAccessor.ALPHA, 0.8f).target(1)
                .ease(TweenEquations.easeInOutQuad).repeatYoyo(1, 0.4f)
                .setCallback(callback).setCallbackTriggers(TweenCallback.COMPLETE)
                .start(manager);
    }
 
    @Override
    public void render(float delta) {
        manager.update(delta);
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        batch.begin();
        sprite.draw(batch);
        batch.end();
 
    }
 
    @Override
    public void resize(int width, int height) {
 
    }
 
    @Override
    public void pause() {
 
    }
 
    @Override
    public void resume() {
 
    }
 
    @Override
    public void hide() {
 
    }
 
    @Override
    public void dispose() {
 
    }
}
Дополнительные классы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.mygdx.flygame.tools;
 
import aurelienribon.tweenengine.TweenAccessor;
 
public class ValueAccessor implements TweenAccessor<Value> {
    @Override
    public int getValues(Value target, int tweenType, float[] returnValues) {
        returnValues[0] = target.getVal();
        return 1;
    }
 
    @Override
    public void setValues(Value target, int tweenType, float[] newValues) {
        target.setVal(newValues[0]);
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.mygdx.flygame.tools;
 
public class Value {
 
    private float val = 1;
 
    public void setVal(float val) {
        this.val = val;
    }
 
    public float getVal() {
 
        return val;
    }
}
Добавлено через 13 часов 32 минуты
Ещо один забыл
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class SpriteAccessor implements TweenAccessor<Sprite> {
 
    public static final int ALPHA = 1;
 
    @Override
    public int getValues(Sprite target, int tweenType, float[] returnValues) {
        switch (tweenType) {
            case ALPHA:
                returnValues[0] = target.getColor().a;
                return 1;
            default:
                return 0;
        }
    }
 
    @Override
    public void setValues(Sprite target, int tweenType, float[] newValues) {
        switch (tweenType) {
            case ALPHA:
                target.setColor(1, 1, 1, newValues[0]);
                break;
        }
    }
}
Добавлено через 2 часа 48 минут
Во всех традициях киберфорума: сам задал вопрос сам и отвечу)
Думал над проблемой больше дня и перечитал все похожие вопросы на известном ресурсе.

Ошибки типа FATAL EXCEPTION: GLThread (у меня была такая) возникают тогда когда ресурс был скомпилирован то при выполнении программы не был найден. Оказывается я забыл добавить одну строку в фале проекта build.grandle в секторе project(":android") {
Общий вид должен быть такой:
project(":android") {
...

dependencies {
...
compile fileTree(dir: '../libs', include: '*.jar')
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2016, 15:50     Ошибка при работе с Tween Engine
Посмотрите здесь:

Ошибка при работе с базой данных Android
Android Подскажите где ошибка при работе с БД
Android Ошибка при работе с сетью
Ошибка при работе с Google Maps API v2 Android
Android Русский язык при работе с бд
Ошибка при работе Android Studio Android
Обработка событий при работе с sqlite Android
Android Tween engine
Быстродействие EditText при работе с html Android
Борьба за TextView при работе с CountDownTimer Android
Потоки при работе с камерой Android
Android Ошибка при работе с фрагментами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Закрытая тема Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru