Разработка программы-игры «Змея» на языке С++ с использованием функций WinAPI, страница 9

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

Для формирования конечного изображения, которое и будет выводиться при перерисовке окна, и таким образом обеспечивает двойную буферизацию, при которой исключается во время перерисовки моргание, используем метод Refresh класса View. В нем мы накладываем друг на друга все перерисованные объекты, рисуем сверху буфера HUD с объективной информацией об игре и о состоянии змеи, а также непосредственно производим прорисовку змеи поверх поля.


4 ТЕСТИРОВАНИЕ ПРОГРАММЫ

В ходе тестирования игры, каждый уровень был пройден не один десяток раз. В тестировании проверялась возможность ошибок в размещении объектов игры, таких как пни и яблоки. В результате проверки не один пень не вырос на месте другого, или под яблоком, или под змеей или частично за краем поля. Яблоки также всегда оказывались на доступных для змеи местах. Количество появляющихся пней с каждым уровнем было одинаковым. При их прорисовке не было замечено ни одного артефакта, всегда они рисовались такими как это и задумывалось.

При тестировании динамики передвижения змеи также не было замечено никаких ошибок, змея все время ползала за курсором, ее тело перемещалось строго за головой, смещение движения в результате виляния не выходило за рамки, когда оно не мешает самому процессу игры, а дополняет модель реальной змеи. При столкновении с преградой всегда следовал Game Over, а при столкновении с яблоком всегда следовало его поглощение. Скорость передвижения змеи всегда была одинаковой.

Также проводилось тестирование на разных компьютерах с разными версиями ОС Windows. Везде игра запускалась, шла с одинаковой скоростью, размер объектов подстраивался под разрешение экрана.

При запуске нескольких экземпляров игры не замечено багов, однако играть в таком случае не представляется возможным. При этом не было никаких тормозов. Для переключения между копиями использовалась комбинация Alt+Tab, в результате которого также никогда не было замечено никаких ошибок.