о до пункту 1.
Даний цикл повинен бути реалізований в головному циклі програми, який, тим не менш, повинен ще й обробляти приходять повідомлення Windows. Це дозволяє максимально використовувати ресурси ЕОМ, не перевантажуючи чергу повідомлень, чого не можна було б сказати, якби ми для реалізації циклу використовували таймер з високою частотою. p> Висновки
. Розглянуто можливі середовища виконання проекту. В якості платформи обрана операційна система Windows з використанням Microsoft DirectX. p>. Розглянуто принципи роботи із зображеннями у DirectDraw. Визначено архітектура проекту. br/>
3. Програмна реалізація проекту
.1 Вибір середовища програмування
Кількість середовищ програмування, що дозволяють писати програми для Windows дуже велике. Однак вибір зупинимо на середовищі Microsoft Visual C + + пакету Microsoft Visual Studio 6.0, як у яких такі переваги: ​​
наявність стандартних бібліотек для роботи з DirectDraw;
автоматичне приведення типів даних. Так як всі координати для уникнення втрати даних представлені у вигляді чисел з плаваючою точкою, а при виведенні на екран потрібні цілі координати, таке часто використовується. Наприклад рядок коду Viewball (x, y) в Delphi мала б вигляд ViewBall (round (x), round (y)) що досить незручно;
зручне середовище створення вихідних текстів;
одержуваний компактний і швидкий код;
наявність вже готового модуля ddutil від Microsoft.
3.2 Реалізація алгоритмів створення та виведення поверхонь
Всі поверхні, використовувані в програмі можна поділити на два типи: динамічні і статичні. Статичними є ті поверхні, які завантажуються один раз на початку програми і не змінюють свого змісту (зображення куль і т.д.), до динамічних відносяться поверхні, зображення на яких міняється залежно від результатів яких дій (поверхні з зображенням номери рівня і т.д.). До статичних відносяться поверхні: GameScreen, BallSurface [11], CrossSurface, GameOverSurface, TitleSurface, PunktSurface [5], ArrowSurface, EnterSurface, AboutSurface. До динамічних: PlayerSurface, LevelSurface, ScoreSurface, StringSurface, HiScoreSurface. p> При запуску програми створюється вікно зі стилем WS_POPUP (без шапки і кнопок), ініціалізується DirectDraw (функція DirectDrawInit), створюються всі поверхні (функція CreateAllSurfaces), завантажуються всі статичні (DrawAllStaticSurfaces). Динамічні поверхні малюються тільки в міру необхідності (функції DrawHiScore, DrawString, DrawPlayerName, DrawLevel). Після цього в масив hiscore завантажуються кращі результати (LoadHiScore). p> Далі програмний лічильник потрапляє в цикл обробки повідомлень і оновлення екрану. У порівнянні з звичайними Windows-додатками тут функція GetMessage замінена на PickMessage, яка на відміну від першої не очікує приходу повідомлення, а перевіривши чергу повідомлень, завершує свою роботу. Якщо повідомлення в дан...