Ако можех да адаптирам кода, така че незабавно да се адаптира към спадове в честотата на кадрите, играта всъщност никога нямаше да работи под 60 кадъра в секунда, което би било невероятно.
Ако беше възможно, щяхме да намерим това като стандартна функция в двигателите за рендиране. Уви, не е така.
Откриването на изпуснат кадър означава, че вече е трябвало да бъде изпуснат кадър. Разходите за превключване на пътеките на кода, особено обратно към версията с "висока детайлност", често също са твърде непосилни.
Освен главоболията от проектирането на игра, чиито визуални ефекти или дори алгоритми могат да варират по всяко време.
Освен това възприятието на играчите ще бъде доста негативно - помислете за стрийминг на видеоклипове, които автоматично се настройват към честотната лента и понякога изглеждат много блокирани за няколко секунди.
Често е по-добре да ограничите играта до 30 кадъра в секунда, ако не можете да поддържате 60 кадъра в секунда през цялото време, и да я проектирате спрямо постоянни 30 кадъра в секунда, а не колебаещи се 40 до 60 кадъра в секунда.
Както и да е, ако влезете secondsPerFrame
и получите 0,0000, може би сте се регистрирали с помощта на грешен спецификатор на формат. Опитайте тази:
NSLog(@"spf: %f", [CCDirector sharedDirector].secondsPerFrame);
Имайте предвид, че тази стойност може да е средна стойност за множество рамки и може да не се актуализира в компилациите на версията. Проверете кода за #if/#ifdef.
person
LearnCocos2D
schedule
10.03.2014