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

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

Войти
Регистрация
Восстановить пароль
 
snakeas
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 4
#1

Нет плавности в передвижении персонажа - Программирование Android

09.01.2013, 17:04. Просмотров 669. Ответов 3
Метки нет (Все метки)

Здравствуйте. Вот решил освоить андроид программирование. Прикладное программирование более менее понял, написал для себя программу нужную. Вот решил поиграться с игровыми моментами. Решил сделать просто колобка, который двигается по экрану. В общем, все нормально, нашел в интернете пример змейки, сделал по этому примеру своего колобка, но движения не плавные. Причем игрался со всем: и со скоростью таймера и с количеством пикселей, которые колобок проходит за одно движения. Все равно он дергается.
Подскажите, пожалуйста, как вы выходили (если сталкивались) из этой ситуации? Очень надеюсь на совет, гугл не помог. Заранее спасибо!

Java
1
2
3
//первый поток - отрисовка объектов. второй - шаг колобка. колобок делал и канвасом и загружал с битмапа.
        t.scheduleAtFixedRate(new GraphUpdater(surf), 0, 100);
        t.scheduleAtFixedRate(new StepUpdater(this), 0, 100);
P.S: у меня из графического программирования есть опыт только на Delphi, но, насколько помню, там в такой ситуации все двигалось плавно, если таймер выкрутить на 100 мсек и двигать по паре-тройке пикселей за раз.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 17:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нет плавности в передвижении персонажа (Программирование Android):

Работа ScrollView при передвижении пальца не по нему - Программирование Android
Подскажите, пожалуйста, можно ли сделать так, что бы ScrollView прокручивался при движении пальцем не по нему, а в произвольной точке...

Какого размера делать персонажа для разных экранов Android? - Программирование Android
Какого размера делать персонажа для разных экранов Android? В игре будет два динамических спрайта. Они должны масштабироваться под разные...

Как организовать ограничение движения персонажа по некоторой площадке произвольной формы - Программирование Android
Как организовать ограничение движения персонажа по некоторой площадке произвольной формы. Например, как в денди версии игры Indiana Jones....

Нет плавности в играх при большом количестве фпс - Компьютерное железо
Привет. 19.05 приобрел новое железо для обновления компа, конфиг: i5 6400 Box Материнская плата ASROCK H110M-DGS LGA 1151, mATX, Ret ...

Придать эффект плавности - jQuery
Есть код: var bgC="#f1eace"; $(function(){ $(".hoverElement").hover( function(){ ...

Отсутствие плавности игрового процесса - Компьютерное железо
Здравствуйте уважаемые форумчане. В наличии имеется следующее железо: Процессор - Intel Core i5-2400 3.1 Ghz Видеокарта - Gigabyte...

3
EVP
390 / 246 / 43
Регистрация: 14.12.2010
Сообщений: 472
10.01.2013, 02:28 #2
Если отрисовка непрерывная (не по таймеру) и быстрая (без алгоритмических тормозов),
но всё равно иногда тормозит, то, скорее всего, виноват сборщик мусора (лог запуска GC в LogCat).
Если он запускается, то программа останавливается. Его надо победить, то есть не пользоваться им совсем
Следовательно свои пулы объектов и ручная сборка ненужных объектов.
Если слишком трудоёмко получится, то следует подумать о C++.

Некоторые рецепты для игрушек на Java тут изложены.
1
snakeas
0 / 0 / 0
Регистрация: 20.10.2012
Сообщений: 4
10.01.2013, 04:19  [ТС] #3
EVP, спасибо за ответ!
Да, вы правы, виноват сборщик мусора. Только не очень понимаю, как его отключить. Буду пробовать. Если у вас есть мысли или примеры - буду очень рад, если поделитесь.
0
EVP
390 / 246 / 43
Регистрация: 14.12.2010
Сообщений: 472
10.01.2013, 09:53 #4
GC в Java не отключается. Но его можно заставить не работать, если программа не генерирует мусор.
Все объекты, которыми пользуешься в программе, должны быть в своих пулах.
Взял объект из пула, попользовался, вернул в пул. Для GC не остаётся работы.
И так со всеми объектами. Но это в Java неудобно, т.к. сила Java именно в GC.

Примеры в книжке выше по ссылке.
Кстати, там тоже есть пример змейки: ch06-mrnom.
0
10.01.2013, 09:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 09:53
Привет! Вот еще темы с ответами:

.NET 4.x Оптимизация отрисовки, или как добиться плавности интерфейса - C#
Во время написания проги заметил очень неприятный эффект. При максимизации (развертывании) её на весь экран или изменения размера формы...

GIF! Как текст лучше сохранить ни теряя его плавности? - Web-дизайн
сама картинка gif полностью прозрачная, а текст белый, сохраняю как gif, в итоге на веб-странице он выглядит какбуд-то подраный, видно что...

передвижении scrooll - C#
Что сделать, чтобы при передвижении scrooll изображение сразу передвигалось?

Лаги при передвижении - Windows 7
добрый вечер. после моего поста последнего на этом форуме я пошел гуглить проблему мою . там посоветовали скачать optimizer win7. скачал...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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