Показать сообщение отдельно
Старый 25.06.2009, 12:26   #18
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Дельта тайминг

Ндэ...

Давай вместе разберм твой код и посмеёмся.
Global FPSTime,FPSCount,FPSCountTemp
Все настоящие программисты указывают тип переменных, это и нагляднее и много проблемм предупреждает, поэтому лучше так:
Global FPSTime%,FPSCount%,FPSCountTemp%
Global delta#=1
А вот теперь главная шутка:
delta# = 60.0 / FPSCount
В чём прикол? Да просто тут мы в самом начале делим 60 на переменную FPSCount в которой чуть выше видно что хранится 0.
Что будет если разделить любое число на ноль? Правильно, получится бесконечность... т.к. в любом числе бесконечное число такого мелкого числа как ноль.

Вопрос знатакам: зачем мы в главном цикле каждый раз вызываем функцию Init_Count_FPS()?
Правильно: чтобы узнать текущий фпс, ведь условия меняются и фпс надо считать постоянно. Так какого %$#@! мы дельтатайм то считаем в самом начале, а не сразу после вызова функции Init_Count_FPS()?

Теперь инструкция: строку delta# = 60.0 / FPSCount перенести в новое место сразу после строки Init_Count_FPS() и перед Flip

Серьёзно, нужно как то уметь "читать" свой код.
__________________

Последний раз редактировалось SBJoker, 25.06.2009 в 12:37.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
NitE (25.06.2009), Unodeya (25.06.2009)