netlib.narod.ru< Назад | Оглавление | Далее >

Упражнение: пишем игровой компонент

Теперь ваша очередь написать код и протестировать его на платформах Windows и Xbox 360. Чтобы задача не была слишком сложной, вы напишете небольшой индикатор частоты кадров, отображаемый в верхнем левом углу экрана. Помните о безопасной области на Xbox 360; Возможно, имеет смысл использовать различный код позиционирования числа, индицирующего частоту кадров, для Windows и Xbox 360. Взгляните на следующий фрагмент кода, чтобы понять, как это можно сделать:

#if XBOX360
    Point fpsPos = new Point(2 + width / 15, 2 + height / 15);
#else
    Point fpsPos = new Point(2, 2);
#endif

Вы должны подключить игровой компонент, так же, как делали это с классом SimpleCamera, и должны поместить его в пространство имен игры. Для рисования счетчика частоты кадров используйте последнюю строку метода BaseGame.Draw перед вызовом base.Draw. Затем проверьте пару тестовых модулей (смотрите класс программы), и посмотрите, правильно ли отображается счетчик частоты кадров в Windows и на Xbox 360, если она у вас есть.

Для вычисления количества кадров в секунду вам необходимо использовать переменную счетчика кадров, определить, как долго работает приложение, и разделить второе значение на первое, чтобы получить среднее количество отображаемых в секунду кадров. Лучший вариант — считать количество кадров каждую секунду и начинать с 0 каждый раз, когда секунда прошла.

Если вы не уверены в своей реализации, подождите несколько глав и посмотрите код, используемый в последующих играх (у каждой из них есть счетчик частоты кадров и код для него). Например, игра Rocket Commander в отладочном режиме всегда показывает частоту кадров, и это же верно для всех ее тестовых модулей, что помогает быстро замечать падение быстродействия, если что-то сделано неверно. Если вам нужен только код компонента, взгляните на класс FpsCounter из исходных кодов к этой главе.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz