Информатика и образование
  Мобильная версия сайта            
               
[Главная] [Новости]
[Статьи]
[Проекты]
[Ссылки]
[Автор]
               
    [Архив новостей]        
               
  [Форум] на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы  
       
  Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [English version of this page here...]    
       
  [Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi]    
  [Разработка компьютерной игры] [Пример игры Donuts3D] [Delphi DirectX]    
       
  Эмулятор электронной игры Электроника ИМ-02 "Ну, Погоди!"    
       
  триал-версия, 1,34 Mb   скачайте полную версию игры, зарегистрируйтесь и получите бесплатно полный исходный код игры для компиляции в 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
Hosted by uCoz