Восстановление потерянных поверхностей
Прежде чем расставаться с программой Bumper, мы должны посмотреть, как происходит восстановление потерянных поверхностей. Как обычно, для этого служит функция
RestoreSurfaces():
void BumperWin::RestoreSurfaces() { for (int i=0;i<nsprites;i++) sprite[i]->GetSurf()->Restore(); LoadSurface( *sprite[0], "diamond.bmp"); LoadSurface( *sprite[1], "diamond.bmp"); LoadSurface( *sprite[2], "triangle.bmp" ); LoadSurface( *sprite[3], "triangle.bmp" ); LoadSurface( *sprite[4], "rect.bmp" ); LoadSurface( *sprite[5], "rect.bmp" ); LoadSurface( *sprite[6], "oval.bmp" ); LoadSurface( *sprite[7], "oval.bmp" ); text->Restore(); LoadSurface( text, "text.bmp" ); }
|
Сначала область памяти каждой поверхности восстанавливается функцией
Restore() (если поверхность не была потеряна, вызов
Restore() игнорируется). Затем функция
LoadSurface() восстанавливает содержимое поверхности. Обратите внимание — здесь, как и в функции
DrawScene(), используется оператор
LPDIRECTDRAWSURFACE(), позволяющий передавать объекты
Sprite вместо указателей на поверхности. Работа функции завершается восстановлением поверхности меню (
text).
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий