Мобильная версия сайта | |||||||||
[Главная] | [Новости] | [Статьи] |
[Проекты] |
[Ссылки] |
[Автор] |
||||
[Архив новостей] | |||||||||
[Форум] | на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы | ||||||||
Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [English version of this page here...] | |||||||||
[Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi] | |||||||||
[Разработка компьютерной игры] [Пример игры Donuts3D] [Delphi DirectX] | |||||||||
Эмулятор электронной игры Электроника ИМ-02 "Ну, Погоди!" | |||||||||
скачайте полную версию игры, зарегистрируйтесь и получите бесплатно полный исходный код игры для компиляции в delphi 7 или 2006 и уроки delphi directx 8.1 содержащие статьи по созданию собственной 2D/3D игры в среде delphi directx | |||||||||
Урок 9 Тестирование и отладка приложения | |||||||||
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1 | |||||||||
Далее у читателя подразумевается наличие базовых знаний языка Delphi. | |||||||||
[назад] [страница 1] [далее] [к содержанию] | |||||||||
Мы добрались до логического завершения уроков по созданию 2D-игры. В первых уроках Вам давались довольно детальные пояснения, в последующих упор был сделан на конкретных практических вопросах, а со всеми деталями Вы могли ознакомиться в исходном коде. Но каковы бы ни были Ваши знания, умения, навыки и опыт практической разработки проблема тестирования и отладки кода всегда будет стоять перед Вами. Ниже я попытаюсь дать Вам некоторые практические рекомендации. Надеюсь они помогут Вам создать более устойчивые к работе и отлаженные игры. |
|||||||||
Прежде всего тестирование и отладка любой игры необходимы, чтобы выявить явные и скрытые ее дефекты вызванные логическими и иными ошибками в коде. При написании игры любой сложности не избежать ошибок. Кроме того, по мере совершенствования и развития проекта Вам приходят новые идеи, Вы хотите что-то улучшить, что-то заменить, а что-то удалить вообще. Все эти перманентные изменения также требуют дальнейшей тщательной проверки. |
|||||||||
Для нас с Вами, как начинающих игроделов, самым простым способом создания и построения кода, при котором можно допустить минимум ошибок - это создание кода от простого к сложному. Иными словами, нужно шаг за шагом создавать отдельные, пусть и небольшие, части Вашей программы и сразу же компилировать и тестировать их. Обязательно Важно понимать что происходить в той или иной части кода, для чего нужна каждая переменная и какие значения она может принимать и т.д. Как нельзя лучше этого понимания можно достичь сосредоточившись на создание сначала очень маленьких, но полнофункциональных частей программы. На протяжении наших предыдущих уроков мы неотрывно следовали этому правилу. Прежде чем приступить к написанию кода нужно четко сформулировать алгоритм, который Вы хотите реализовать. Это позволит избежать дополнительных ошибок. Новички в создании игр часто думают: всё уже давно придумано до нас, так чего тут думать - нужно сразу же приступать к кодированию и очень ошибутся при этом. Я согласен с Вами, что всё действительно уже придумано, но знаний о том, как это работает, у Вас может и не быть. Поэтому нужно сначала разобраться в созданном, а потом уже и придумывать что-то своё, новое. Ошибкой является мнение, что можно быстро и качественно создать игру, на основе имеющегося готового кода. Практика показывает, что это не так. Если у человека нет знаний о том, как модифицировать код и выяснить к чему это приведет, то он не сможет ничего сделать даже имея на руках готовый код. Сначала этот код нужно тщательно изучить, разобравшись что и как работает. После этого можно брать отдельные функциональные его части и осмысленно экспериментировать с ними. Добившись же полного понимания того, что и как работает, можно приступить к созданию собственного проекта, но опять же, лучше это начать с нуля. Для этого сначала создать шаблон приложения, а затем постепенно наращивать его код добавляя различные функциональные возможности. Создание Вашего игрового проекта может выглядеть так: 1) Написание шаблона стартового приложения; 2) Добавление в шаблон вывода титульной заставки; 3) Реализация экрана главного меню (пока без реализации возможностей отдельных его пунктов); 4) Последовательная реализация пунктов меню, начиная с простых; 5) Реализация загрузки ресурсов и начального экрана игры; 6) Постепенная реализация игровой логики и всех остальных возможностей; |
|||||||||
Начав с простого и постепенно дополняя и расширяя возможности в конце концов достигнете своей цели создав законченный проект. Под тестированием и отладкой понимается всесторонняя проверка созданного приложения, главным образом соответствие его работы задачам, которые ставились. Обычный запуск и проверка всех возможностей и режимов работы позволяют оценить общий функционал приложения и отследить явные недочеты и расхождения с запланированным. Тестирование в более жестком режиме потребует для приложения создания всевозможных условий работы, которые позволят проверить стабильность и скрытые ошибки. Для более детального тестирования и отладки потребуется запуск приложения из среды Delphi в режиме отладки. Этот режим может сказаться на реальной производительности значительно снизив ее, но он позволяет отслеживать работу отдельных участков кода путем пошагового исполнения и инспектирования значений переменных. Для этого в коде расставляются контрольные точки останова, а значения переменных инспектируются в специальных окнах. Если переменные недоступны из-за оптимизации, то их на этапе отладки можно временно заменить на глобальные. |
|||||||||
Попробуем выполнить наше приложение в режиме отладки. Откройте любой проект и нужный его модуль. Путем щелчка левой кнопки мыши в левом поле напротив окна текста исходного кода установите в строке кода, которая является исполнимой контрольную точку останова (Break Point) |
|||||||||
запустите приложение в режиме отладки щелкнув по кнопке Run - | |||||||||
или выбрав пункт меню Run > Run | |||||||||
При этом приложение будет запущено в режиме отладки, позволяющем исследовать код путем пошагового его исполнения. Весь код до точки останова будет выполнен сразу же, а в точке останова исполнение сделает паузу и отладчик будет ожидать Ваших дальнейших действий. Вы можете нажимать клавиши [F8], [F7] - пункты меню Run > Step Over и Run > Trace Into для пошагового исполнения каждой строки кода начиная с точки останова. При этом в отдельных окнах Watch List и Local Variables, а также путем наведения указателя мыши на любую нужную переменную Вы можете увидеть значение, которое она принимает в данный момент. |
|||||||||
Окно Call Stack позволяет увидеть последовательность вызовов различных функций в Вашей программе начиная снизу и вверх, в окне Event Log вы можете увидеть события которые происходят во время исполнения и отладочные сообщения, если таковые имеют место. Экстренно завершить выполнение приложения можно нажав комбинацию клавиш [Ctrl] + [F2]. Это вызовет закрытие приложения и переведет среду Delphi в обычный режим работы над исходным кодом. |
|||||||||
В режиме отладки клавиша [F8] позволяет перейти к исполнению следующей строки кода, [F7] позволяет войти в код функции и проследить, что происходит внутри неё (если исполнимая строка кода является вызовом функции, процедуры или метода). Контрольные точки останова нужно ставить только в тех строках кода, которые являются исполнимыми (напротив них при компиляции появляется синяя жирная точка), иначе это не приведет к останову в данной строке при запуске в режиме отладки. Комментарии не являются исполнимыми строками кода, т.к. не дают исполнимого кода при компиляции. Если Вы работаете в среде Delphi 7, то заметите, что операторы логических скобок begin и end также не являются исполнимыми и их нельзя использовать в качестве контрольных точек останова. В среде Delphi 2006 это делать можно. |
|||||||||
Таким образом, в режиме отладки Вы можете постепенно исполнять нужный Вам участок кода строка за строкой и проверять значения некоторых переменных. Если значение переменной отличается от того, которое она по плану должна принять, то это будет свидетельствовать о наличии в коде логической ошибки, которую Вам предстоит найти и исправить. | |||||||||
Однако иногда бывает, что значения нужных переменных меняются очень быстро или переменные учавствуют в таких процессах, что отследить их в режиме отладки неудобно или вообще не представляется возможным, кроме того, может быть так, что Вы еще и сами не знаете в какой конкретно переменной и в каком участке кода скрывается ошибка. В этом случае можно использовать для инспектирования переменных другой способ. Для этого в код приложения добавляется код, который позволяет показать значения некоторых переменных на экране в режиме обычного исполнения. Этим способом Вы можете узнать о состоянии переменной в любой момент времени и в любом состоянии приложения. Например, таким способом отображается FPS. В окончательном отлаженном проекте этот код позднее комментируется или удаляется, так что экран в конечном счете не будет засорен для пользователя посторонней информацией. Можно также в рабочем приложении предусмотреть специальную клавишу, которая бы включала и отключала отображение проверяемых переменных. |
|||||||||
С таким кодом Вы наверняка уже сталкивались в наших предыдущих уроках, и он для Вас уже не нов, поэтому я не вижу большого смысла его здесь приводить. | |||||||||
В заключение скажу лишь, что режим отладки не является чем-то особо сложным и недоступным пониманию, если Вы пока еще не совсем с ним хорошо знакомы. Вам достаточно лишь раз посмотреть как происходит работа в этом режиме и думаю, все вопросы разрешатся постепенно по мере Вашей работы. | |||||||||
Кроме того, в ходе практической реализации самостоятельного игрового проекта у Вас будут возникать новые вопросы и если Вы будете разрешать их самостоятельно, используя документацию по Delphi, DirectX и некоторые сведения почерпнутые из данных уроков, то у Вас всё получится. | |||||||||
Желаю Вам всяческих успехов. | |||||||||
свои вопросы Вы можете задавать на megainformatic@mail.ru или оставьте сообщение на форуме |
|||||||||
[назад] [страница 1] [далее] [к содержанию] | |||||||||
по всем вопросам пишите на megainformatic@mail.ru или оставьте сообщение на форуме | |||||||||
Обновления
и новости о развитии Delphi DirectX проекта http://www.megainformaticsite.pochta.ru http://www.megainformatic.boom.ru http://www.megainformatic.narod.ru
|
|||||||||
Cвои пожелания, вопросы или заметки отправляйте на: megainformatic@mail.ru или пишите на форуме |
|||||||||
Обмен ссылками | |||||||||
|
|||||||||
(с) МЕГА ИНФОРМАТИК 2006-2009 | |||||||||