Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446

Как праивильно отрисовывать объекты?

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

Студворк — интернет-сервис помощи студентам
Здравствуйте!

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

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

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

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

Добавлено через 5 часов 10 минут
***up***
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.03.2014, 21:31
Ответы с готовыми решениями:

Как праивильно парсить из json в Qt c++ ?
в .json данные содержатся данные координат, и еще два объекта. Они представлены в виде , "type":0, "z":0 ...

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

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

5
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
29.03.2014, 05:34
На чем рисуете? Если на канве то она и будет тормозить. Используйте Surfaceview
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
29.03.2014, 12:42  [ТС]
А как можно рисовать не на канве?

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

Java
1
canvas = gameView.getHolder ( ).lockCanvas ( );
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
30.03.2014, 18:26  [ТС]
Еще вопрос:

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

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

Кликните здесь для просмотра всего текста
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);
                }
            }
        }
    }
}


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

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

Заранее спс!
0
6 / 6 / 2
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 20:56
рисование на AVD достаточно сильно затормаживает. Opnegl вобще практически не возможно работать. Попробуйте Genymotion.
0
Вежливость-главное оружие
 Аватар для some_name
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
30.03.2014, 21:06  [ТС]
Меня интересует, какой из способов лучше. А то что AVD тормозит, дык это видно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2014, 21:06
Помогаю со студенческими работами здесь

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

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

Как отрисовывать один объект несколько раз! HTML 5 CANVAS
Такая история! Есть плавно увеличивающийся круг на полотне canvas! (круг появляется в рандомном месте полотна canvas). Как мне вызывать...

Как правильно отрисовывать TextBox при использовании Aero Glass
Научился правильно &quot;рисовать&quot; лейбл -&gt; Но когда на форму с Aero Glass кладу текст-бокс, выходит это -&gt; Как сделать нормальный...

Праивильно ли я открываю PopUp окно
Добрый день! У меня вопрос-как отрыть PopUp окно по нажатию кнопки, при этом вызываться должен aspx файл (веб часть). Проект пишется...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru