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

Libgdx прорисовка текстур - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как правильно обновлять Android Studio http://www.cyberforum.ru/android-dev/thread1737858.html
Здравствуйте коллеги. При обновлении студии создаются старые копии версий(см. рис.) 1)Можно ли их удалить и помешает ли это работе актуальной? Вышла новая версия 2.1 2) Могу ли я скачав ее с оф....
Программирование Android Как извлечь записи из базы данных Oracle в android Сделал логирование, регистрацию, добавление в базу. Осталось только извлекать с сервера на клиент информацию, как это осуществить? Имею класс с методом GET @SuppressWarnings("deprecation") public... http://www.cyberforum.ru/android-dev/thread1737690.html
Обработка изображения с камеры Программирование Android
Делаю фотографию с камеры, на фото студенческий пропуск, нужно обрезать полученную фотографию, чтобы остался один только пропуск и потом разрезать его процентно, чтобы оставить только часть...
Программирование Android Меню в Toolbar
Здравствуйте, есть проблема не знаю как сделать подобное меню в Toolbar. Чтобы при нажатие одного item выпадал список. ...
Программирование Android SQLiteDatabase как обновить таблицы? http://www.cyberforum.ru/android-dev/thread1737567.html
Привет, снова я )) Данные в базу закачиваются из других классов, то есть всё работает, но только если по отдельности открывать активити... Пример: я открываю вкладку "адреса" и в таблицу "адреса"...
Программирование Android Перевод double в byte[] Я нашел такой код. double d = 65.43; byte output = new byte; long lng = Double.doubleToLongBits(d); for(int i = 0; i < 8; i++) output = (byte)((lng >> ((7 - i) * 8)) &... подробнее

Показать сообщение отдельно
SmirnygaTotosh
3 / 3 / 0
Регистрация: 17.11.2013
Сообщений: 26

Libgdx прорисовка текстур - Программирование Android

17.05.2016, 23:33. Просмотров 211. Ответов 0
Метки (Все метки)

Господа знатоки!Кто-нибудь может мне прояснить причину подобного явления?
Первый скрин(png) - это результат работы кода,приведённого ниже на desktop(Win Xp Sp3).
Второй скрин - на android 4.4.2 Samsung galaxy ace4 neo.
Почему один и тот же код работает по-разному,и как это исправить?
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
public class MainMenu implements Screen{
    SpriteBatch batch;
    Texture fon;
    Music music;
 
        Animation fonAnimation; // #3
        Animation InversefonAnimation; 
        Texture fonSheet; // #4
        TextureRegion currentFrame; // #7
        TextureAtlas atlas;
        TextureRegion[] frames;
        TextureRegion[] inverse_frames;
 
boolean isInverse;
        float stateTime; // #8
    
    public MainMenu() {
            super();
            
        fon = new Texture(Gdx.files.internal("main_screen.png"));
        music = Gdx.audio.newMusic(Gdx.files.internal("opus.ogg")); 
        fonSheet = new Texture(Gdx.files.internal("fon.jpg")); // #9
        atlas = new TextureAtlas(Gdx.files.internal("fon.atlas"));
        batch = new SpriteBatch();        
        frames = new TextureRegion[40];
        inverse_frames = new TextureRegion[40];
         for(int i = 0;i < frames.length;i++)
         {
                 frames[i] = atlas.findRegion(Integer.toString(i + 10));
         }
         for(int i = 0,j = frames.length - 1;i < frames.length;i++,j--)
         {
             inverse_frames[i] = frames[j];
         }
            fonAnimation = new Animation(0.1f, frames); // #11
            InversefonAnimation = new Animation(0.1f, inverse_frames);
       
 
            stateTime = 0f; // #13
            isInverse = false;
        }
 
 
    @Override
    public void show() {
        music.play();
        music.setLooping(true);
        Gdx.app.debug(ElfGame.TAG, "show");
}
 
    
 
    @Override
    public void render(float delta) {
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); // #14
        stateTime += delta;
        Gdx.app.log(ElfGame.TAG, "stateTime = "+stateTime);
        Gdx.app.log(ElfGame.TAG, "delta = "+delta);
            int a;
            if (!isInverse)
            {
                a = fonAnimation.getKeyFrameIndex(stateTime);
                if (a == frames.length -1)
                {
                    isInverse = true;
                    currentFrame = frames[frames.length -1];
                    stateTime = 0f;
                }
                else
                    currentFrame = fonAnimation.getKeyFrame(stateTime);
            }
            else
            {
                a = InversefonAnimation.getKeyFrameIndex(stateTime);
                if (a == inverse_frames.length -1)
                {
                    isInverse = false;
                    currentFrame = inverse_frames[inverse_frames.length -1];
                    stateTime = 0f;
                
                }
                else
                    currentFrame = InversefonAnimation.getKeyFrame(stateTime);
            }           
            
            Gdx.app.log(ElfGame.TAG, "frame = "+a);
            Gdx.app.log(ElfGame.TAG,"current_frame = "+currentFrame);
        batch.begin();
       batch.draw(currentFrame, 0, 0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight()); // #17
       batch.draw(fon,0,0,Gdx.graphics.getWidth(),Gdx.graphics.getHeight());
        batch.end();
         
 
    }
 
 
    @Override
    public void resize(int width, int height) {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public void pause() {
        music.pause();
        
    }
 
    @Override
    public void resume() {
        music.play();
        
    }
 
    @Override
    public void hide() {
        // TODO Auto-generated method stub
        
    }
 
    @Override
    public void dispose() {
        batch.dispose();
        fon.dispose();
        music.dispose();
        fonSheet.dispose(); // #4 // #7
        atlas.dispose();
    }
 
}
Там по очереди проигрываются 2 типа анимации:нормальная и задом наперёд.
0
Миниатюры
Libgdx прорисовка текстур   Libgdx прорисовка текстур  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru