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

Ошибка при работе с Tween Engine - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Адаптировать layout под другие устройства http://www.cyberforum.ru/android-dev/thread1786508.html
Добрый. Как на всех устройствах в Android Studio отображать все блоки одинаково по расположению, а то выходит картина, приложенная ниже. Картинка - http://********/JZCE Код XML: <?xml version="1.0"...
Программирование Android Как позвонить из своего приложения? в продолжение темы http://www.cyberforum.ru/android-dev/thread1105084.html Вроде бы понятно как позвонить. А как еще и ответить звуковым файлом, например. Я немного почитал на эту тему и знаю,... http://www.cyberforum.ru/android-dev/thread1786408.html
Добавить кнопку на стандартное окно Программирование Android
Есть ли способ отображать кнопку "свою" дополнительную кнопку на окно (например), которое отображается во время разговора?
Программирование Android Програмная настройка логера slf4j
добрый день. использую логгер slf4j, при конфигурации посредством xml все работает отлично <configuration> <property name="LOG_DIR" value="/sdcard/Results/.logs" /> <appender ...
Программирование Android Как достать исходный код из APK? http://www.cyberforum.ru/android-dev/thread1786321.html
Сразу оговорюсь, пытаюсь "вскрыть" свою программу, дабы увидеть её внутренности глазами взломщика и помешать ему. Тот же apktool запросто выковыривает ресурсы. Мне это не страшно, все критичные...
Программирование Android Не получается добавить новый AVD Здравствуйте. Пытаюсь следовать вот этому уроку http://startandroid.ru/ru/uroki/vse-uroki-spiskom/12-urok-3-sozdanie-avd-pervoe-prilozhenie-struktura-android-proekta.html Но когда добавляю AVD.... подробнее

Показать сообщение отдельно
Matanoid
10 / 0 / 1
Регистрация: 12.10.2015
Сообщений: 37

Ошибка при работе с Tween Engine - Программирование Android

28.07.2016, 15:50. Просмотров 181. Ответов 0
Метки (Все метки)

Добрый День! Пишу на 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')
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru