На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Как измерить fps за секунду? , Помогите разобраться.
    Пишу игру на телефон, немного чего там есть, тут решил сделать дебаг информацию о игре которая будет показываться по нажатию кнопки.
    Начал делать, понял что стандартные шрифты для отрисовки текста - не подойдут. Сделал функцию для отрисовки текста шрифтом из картинки - такая длинная картинка с длинным рядом символов. Добавил в отрисовку x и y игрока, x и y курсора и ещё кучу всего. Потом думаю надо бы туда добавить отрисовку fps и обламался, потому что понял что не знаю как это реализовать. Поискал в инете помощи - не нашёл. Решил зарегаться на вашем форуме, так как посчитал что это крупнейший форум программистов и тут мне точно помогут ;) .
    Дак как же вычислить fps за секунду?
      завести счетчик кадров и метку времени. при каждой отрисовке кадра увеличивать счетчик кадров.
      дальше либо тут же смотреть разницу м/у меткой времени и текущим временем и пропорцией вычислять кол-во кадров в секунду, либо проверять чтобы разница м/у меткой и текущим временем была секунда (и больше) и при достижении этой разницы в счетчике кадров будет fps (запоминаем в какую нибудь переменную для вывода).
      далее обнуляем счетчик и метку времени делаем текущим временем.
        А это идея :lol: , но я не совсем понял как понять дать мидлету что прошла уже 1 секунда? :huh:
          Вот нашёл на это форуме
          system.Current.getTimeMillis
          Благодаря этой теме я нашёл решение своей проблемы, написал такой код:
          ExpandedWrap disabled
            в коде инициализации:
            time1 = System.currentTimeMillis(); // замеряем время сначала и приравниваем к time1
             
            в коде игрового цикла loop
            time2 = System.currentTimeMillis(); // замеряем время и приравниваем к time2
            if (time2 - time1 >= 1000) { // если разница между time2 и time1 >= 1000, то значит прошла 1 секунда
                time1 = System.currentTimeMillis(); // снова замеряем время и приравниваем к time1
                // здесь сам код который нужно выполнять каждую секунду, в данном случае это: значение счётчика обновлений экранов присваивается к
                // переменной для отрисовки количества фпс за секунду и затем этот счётчик обнуляется для подсчёта количества обновлений экрана
                // в следуйщей секунде
            }


          Всем спасибо за помощь :rolleyes: .
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0273 ]   [ 15 queries used ]   [ Generated: 2.05.24, 21:55 GMT ]