Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.119.105.239] |
|
Сообщ.
#1
,
|
|
|
Пишу игру на телефон, немного чего там есть, тут решил сделать дебаг информацию о игре которая будет показываться по нажатию кнопки.
Начал делать, понял что стандартные шрифты для отрисовки текста - не подойдут. Сделал функцию для отрисовки текста шрифтом из картинки - такая длинная картинка с длинным рядом символов. Добавил в отрисовку x и y игрока, x и y курсора и ещё кучу всего. Потом думаю надо бы туда добавить отрисовку fps и обламался, потому что понял что не знаю как это реализовать. Поискал в инете помощи - не нашёл. Решил зарегаться на вашем форуме, так как посчитал что это крупнейший форум программистов и тут мне точно помогут . Дак как же вычислить fps за секунду? |
Сообщ.
#2
,
|
|
|
завести счетчик кадров и метку времени. при каждой отрисовке кадра увеличивать счетчик кадров.
дальше либо тут же смотреть разницу м/у меткой времени и текущим временем и пропорцией вычислять кол-во кадров в секунду, либо проверять чтобы разница м/у меткой и текущим временем была секунда (и больше) и при достижении этой разницы в счетчике кадров будет fps (запоминаем в какую нибудь переменную для вывода). далее обнуляем счетчик и метку времени делаем текущим временем. |
Сообщ.
#3
,
|
|
|
А это идея , но я не совсем понял как понять дать мидлету что прошла уже 1 секунда?
|
Сообщ.
#4
,
|
|
|
Вот нашёл на это форуме
system.Current.getTimeMillis Благодаря этой теме я нашёл решение своей проблемы, написал такой код: в коде инициализации: time1 = System.currentTimeMillis(); // замеряем время сначала и приравниваем к time1 в коде игрового цикла loop time2 = System.currentTimeMillis(); // замеряем время и приравниваем к time2 if (time2 - time1 >= 1000) { // если разница между time2 и time1 >= 1000, то значит прошла 1 секунда time1 = System.currentTimeMillis(); // снова замеряем время и приравниваем к time1 // здесь сам код который нужно выполнять каждую секунду, в данном случае это: значение счётчика обновлений экранов присваивается к // переменной для отрисовки количества фпс за секунду и затем этот счётчик обнуляется для подсчёта количества обновлений экрана // в следуйщей секунде } Всем спасибо за помощь . |