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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
#1

Как праивильно отрисовывать объекты? - Программирование Android

28.03.2014, 21:31. Просмотров 547. Ответов 5
Метки нет (Все метки)

Здравствуйте!

Имеется просьтенькая спрайтовая игра.

Как выполняю отприсовку:

1. Рисую белый фон
2. Рисую спрайты

Однако игра как слайд шоу. Все очень подтармаживает. Или мб дело в настройке AVD?
Заранее спс!

Добавлено через 5 часов 10 минут
***up***
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 21:31     Как праивильно отрисовывать объекты?
Посмотрите здесь:

Как правильно создавать объекты ? - Программирование Android
Как правильно создавать объекты и как они расходуют память, что является правильным подходом? вариант 1: public class...

Как вывести объекты списком? - Программирование Android
В XML расположил все объекты вертикально. Но при компиляции многие объекты, которые в низу не выводятся, по идее должен появиться скрул (Я...

Как получить объекты записные в TableRow? - Программирование Android
Добавляю несколько TextView в TableRow, теперь нужно достать TextView для прочтения текста с него. Как к достать массив объектов...

Как перебрать объекты разного класса - Программирование Android
Делаю игру. Там есть монстры. Будет класс Enemy и несколько дочерних классов Monstr1 extends Enemy, Monstr2 extends Enemy.. и т.д... ...

Динамические объекты на экране - Программирование Android
Каким образом можно перемещать View-элементы по экрану телефона? то есть есть какие то обьекты на экране, причем это не канвас, это View....

Пустить объекты в два ряда - Программирование Android
Все ношусь со своей детской игрой - кликать по шарикам нужного цвета. Нашел учебный пример в сети - там каждый объект появляется...

SurfaceView Canvas нужно ли хранить все отрисовываемые объекты? - Программирование Android
Здравствуйте! Вот код моего активити: public class CanvasActivity extends Activity { @Override protected void...

Можно ли хранить во ViewPager не только элементы (объекты), но и какую-то переменную? - Программирование Android
Добрый вечер! Столкнулся с необходимостью использовать ViewPager и PagerAdapter. Подскажите пожалуйста, можно ли хранить во ViewPager...

Как отрисовывать различные данные в окне? - C++ WinAPI
Здравствуйте! не давно начал изучать WinApi! Создал окно-> нарисовал в нем прямоугольник с помощью функции Rectangle() 1/4 от окна. ...

Как отрисовывать меню по вертикали и горизонтали? - PHP
Имеется меню следующего вида function ShowTree($parent, $lvl) { global $link; $lvl++; $sql = "SELECT *...

Как правильно отрисовывать фигуры в событии таймера - C#
Во общем решил сделать отрисовку прямоугольника по таймеру ,ну так что бы по истечению 5 секунд прямоугольник менял свои размеры,но он не...

Как отрисовывать PartialView используя unobtrusive AJAX - C# MVC
Имеется ActionLink, по которому вызывается контроллер, возвращающий PartialView, содержащую вызов Html.Raw. Как добавить AJAX, чтобы...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.03.2014, 05:34     Как праивильно отрисовывать объекты? #2
На чем рисуете? Если на канве то она и будет тормозить. Используйте Surfaceview
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
29.03.2014, 12:42  [ТС]     Как праивильно отрисовывать объекты? #3
А как можно рисовать не на канве?

Я использую Surfaceview, у коготорого получаю канву.

Java
1
canvas = gameView.getHolder ( ).lockCanvas ( );
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
30.03.2014, 18:26  [ТС]     Как праивильно отрисовывать объекты? #4
Еще вопрос:

Читаю различные туториалы, где пишут просьтенькие игры. В одних отрисовку делаю так:

В отдельном потоке запускают цикл, который вызывает отризовку элемениов. Там же контролируют ФПС. Что-то типа такого:

Кликните здесь для просмотра всего текста
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
public class GameThread extends Thread {
 
    private static final int    MAX_FPS     = 25;
    private static final int    MAX_FRAME_SKIP  = 5;
    private static final int    FRAME_PERIOD    = 1000 / MAX_FPS;
    private GameSurfaceView     gameView;
    private boolean     isRunning;
 
    public void setRunning(boolean run) {
 
        isRunning = run;
    }
 
    public GameThread(GameSurfaceView gameView) {
 
        this.gameView = gameView;
    }
 
    @Override
    public void run() {
 
        Canvas canvas;
        long timeStep = 0;
        long timeBegin;
        int timeSleep;
        int framesSkipped;
        while (isRunning) {
            canvas = null;
            try {
                canvas = gameView.getHolder().lockCanvas();
                synchronized (gameView.getHolder()) {
                    timeBegin = System.currentTimeMillis();
                    framesSkipped = 0;
                    gameView.onDraw(canvas);
                    timeStep = System.currentTimeMillis() - timeBegin;
                    timeSleep = (int) (FRAME_PERIOD - timeStep);
                    if (timeSleep > 0) {
                        try {
                            Thread.sleep(timeSleep);
                        } catch (InterruptedException ex) {
                        }
                    }
                    while (timeSleep < 0
                            && framesSkipped < MAX_FRAME_SKIP) {
                        gameView.onDraw(canvas);
                        timeSleep += FRAME_PERIOD;
                        ++framesSkipped;
                    }
                    gameView.refreshUnits();
                }
            } finally {
                if (canvas != null) {
                    gameView.getHolder().unlockCanvasAndPost(canvas);
                }
            }
        }
    }
}


А есть еще вариант, вызывать отрищовку по таймеру.

Какой изи них лучше?

Заранее спс!
Gerbasha
6 / 6 / 1
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 20:56     Как праивильно отрисовывать объекты? #5
рисование на AVD достаточно сильно затормаживает. Opnegl вобще практически не возможно работать. Попробуйте Genymotion.
some_name
Вежливость-главное оружие
221 / 221 / 55
Регистрация: 19.02.2013
Сообщений: 1,431
30.03.2014, 21:06  [ТС]     Как праивильно отрисовывать объекты? #6
Меня интересует, какой из способов лучше. А то что AVD тормозит, дык это видно)
Yandex
Объявления
30.03.2014, 21:06     Как праивильно отрисовывать объекты?
Ответ Создать тему
Опции темы

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