|
0 / 0 / 0
Регистрация: 17.03.2018
Сообщений: 3
|
|
Программирование 2D игры на Android. Скорость отрисовки, гладкие перемещения по экрану и логика16.07.2019, 20:15. Показов 1277. Ответов 0
Всем привет!
Пишу 2D игру на Android, и возникло следующее непонимание. (*) Мне необходимо перемещать по экрану порядка 200 Bitmap, при этом их перемещение должно происходить плавно и гладко, перемещать нужно как с маленькой, так и с большой скоростью, одинаковой для любого устройства. Кроме этого нужно просчитывать логику перемещений перед каждой отрисовкой. Сейчас я рисую на SurfaceView с помощью Canvas, перерисовку задаю через Timer.scheduleAtFixedRate, каждые 25 млсек наношу на Canvas все Bitmap и перерисовываю с помощью SurfaceHolder.unlockCanvasAndPost. 1. Насколько подходит SurfaceView для таких целей (*)? Проблема в том, что если мне нужно плавно перемещать Bitmap по экрану с большой скоростью, то, как показали эксперименты, необходима частота отрисовки порядка 50-60 раз в секунду. Перемещаю я стандартным образом, прибавляя каждый раз к положению компоненты вектора скорости. При меньшей частоте перерисовки появляются дерганые перемещения при сохранении нужной скорости. Если с одним Bitmap устройство еще справляется с задачами (*), то уже 50 Bitmap оно уже не в состоянии отрисовать с такой скоростью, появляются дерганья, задержки. При этом на этом же устройстве установлены игры, в которых объекты двигаются плавно по плоскости. 2. Как разработчики справляются с этой задачей (*)? Быть может поможет OpenGL? Читал, что OpenGL рисует быстрее, чем обычное рисование на Canvas. 3. Допустим, что мне удалось добиться нужной скорости отрисовки, как быть с просчетом логики? Каким образом в приложениях добиваются такой быстрой скорости отрисовки и успевают при этом просчитывать логику перемещений? Логика игры на моем устройстве занимает порядка 10 млсек. Сейчас я выбрал следующую тактику: пока приложение занимается перерисовкой, я вторым потоком просчитываю логику для следующей перерисовки, вроде работает нормально.
0
|
|
| 16.07.2019, 20:15 | |
|
Ответы с готовыми решениями:
0
Запуск игры mr.Nom через Android Studio (по книге марио цехнер программирование игр под android) Программирование игры для Android
|
| 16.07.2019, 20:15 | |
|
Помогаю со студенческими работами здесь
1
Как узнать скорость перемещения объекта в 3-мерном пространстве, если задана вертикальная и горизонтальная ср. скорость Составить программу перемещения пирамиды по экрану
Логика перемещения ходов в пятнашках Скорость отрисовки DataGrindView Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|