Проектирование игрового симулятора
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
В°льнейшем является основой для следующей итерации.
В результате каждой итерации разработчик демонстрирует пользователям готовый прототип, а пользователи оценивают его функционирование. После этого определяются проблемы, над устранением которых совместно работают пользователи и разработчики. Этот процесс продолжается до тех пор, пока пользователи не будут удовлетворены степенью соответствия ПП, поставленным перед ним требованиям. Затем прототип демонстрируют пользователям с целью получения предложений по его усовершенствованию, которые включаются в последовательные итерации до тех пор, пока рабочая модель не окажется удовлетворительной. После этого получают от пользователей официальное одобрение (утверждение) функциональных возможностей прототипа и выполняют его окончательное преобразование в готовый ПП.
Модель прототипа обладает целым рядом преимуществ:
-взаимодействие заказчика с разрабатываемой системой начинается на раннем этапе;
-благодаря реакции заказчика на прототип, сводится к минимуму число неточностей в требованиях;
-снижается вероятность возникновения путаницы, искажения информации или недоразумений при определении требований к ПП, что приводит к созданию более качественного ПП;
-в процессе разработки всегда можно учесть новые, даже неожиданные требования заказчика;
-прототип представляет собой формальную спецификацию, воплощенную в ПП;
-прототип позволяет очень гибко выполнять проектирование и разработку, включая несколько итераций на всех фазах жизненного цикла разработки;
-заказчик всегда видит прогресс в процессе разработки ПП;
-возможность возникновения противоречий между разработчиками и заказчиками сведена к минимуму;
-уменьшается число доработок, что снижает стоимость разработки;
-возникающие проблемы решаются на ранних стадиях, что резко сокращает расходы на их устранение;
-заказчики принимают участие в процессе разработки на протяжении всего жизненного цикла и в конечном итоге в большей степени довольны результатами работы.
.2 Разработка программного продукта
Программный продукт для данной дипломной работы разработан на основе модели прототипа разработки ПО.
Разработана структура программного продукта, определены основные функциональные модули, выбрана среда для реализации.
.2.1 Реализация
В ходе реализации создан графический интерфейс пользователя, написан код программы, реализующий все её функции. Основные функции программы представлены в листингах 1 - 6.
Листинг 3.1 - Функция инициализации графического движкаWINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{//установка поддержки русского языка(LC_CTYPE,"Russian");
//передача движку служебной иформации= hgeCreate(HGE_VERSION);//версия движка>System_SetState(HGE_LOGFILE, "lsr.log");//лог-файл>System_SetState(HGE_FRAMEFUNC, FrameFunc);//функция, содержащая логику>System_SetState(HGE_RENDERFUNC,);//Функция отрисовки>System_SetState(HGE_TITLE, "Lonely Space Ranger");//Заголовок окна>System_SetState(HGE_WINDOWED,true);//Режим (на весь экран/в окне)>System_SetState(HGE_SCREENWIDTH, 1024);//разрешение>System_SetState(HGE_SCREENHEIGHT, 768);>System_SetState(HGE_SCREENBPP, 32);//глубина цвета>System_SetState(HGE_SHOWSPLASH, true);
//инициализация движка(hge->System_Initiate())
{>Random_Seed(hge->Random_Int(0,2000));//инициализация RNG();//инициализаци физики=new hgeFont("Data/font1.fnt");//подгрузка шрифта_All();//загрузка текстур_need_to_init=true;
//создание курсора=new hgeSprite(t_cursor,0,0,20,20);>SetHotSpot(10,10);
//запуск приложения>System_Start();
}
//завершение работы движка>System_Shutdown();
//выгрузка объектов>Release();0;
}
Листинг 3.2 - Функция отрисовки()
{
//создание сцены>Gfx_BeginScene();
//заливка фона>Gfx_Clear(0xFF000000);
//отрисовка фона>Render(0,0);
//отрисовка снарядов>render();
//отрисовк аигрока>render();
//отрисовка противников>render();
//установка цвета шрифта>SetColor(0xFFFFFFFF);
//Отображение здоровья игрока>printf(10,10,HGETEXT_LEFT,"",hero->health);
//определение положения курсора мыши,y;>Input_GetMousePos(&x,&y);
//отрисовка курсора>Render(x,y);
//завершене сцены>Gfx_EndScene();false;
Физический движок Box2D, который используется реализации программы предполагает наличие в ней нескольких специальных функций: функция инициализации 2D пространства (листинг 3), слушатель контактов (листинг 4) и функция разрешения коллизий (листинг 5). Функция инициализации мира создает объекты, необходимые для проведения симуляции физических процессов, а так же инициализирует переменные. Слушатель контактов во время работы программы проверяет состояние мира, и, в случае обнаружения столкновения, вызывает процедуру его обработки. Функция разрешения коллизий предоставляет слушателю контактов пользовательский алгоритм обработки столкновений.
Листинг 3.3 - Функция инициализации 2D пространства()
{
//задание вектора гравитацииVec2 gravity(0.0f, 0.0f);= true;//переменная обозначает, что разрешен переход объектов в режим сна для снижения загрузки
//создание слушателя контактов=newContactListener();
//инициализация 2D пространства=new b2World(gravity, doSleep);
//присвоение слушателя миру>SetContactListener(cl);
Листинг 3.4 - Слушатель контактов: public b2ContactListener
{:
//передача слушателю пользовательского алгоритма обработки столкновений(b2Contact* contact, const b2Manifold* oldManifold);
}*cl;
Листинг 3.5 - Функция разрешения коллизий::PreSolve(b2Contact* contact, const b2Manifold* oldManifold)
{
//получение информации о столкновенииWorldManifold worldManifold;>GetWorldManifold(&worldManifold);PointState state1[2], state2[2];GetPointStates(state1, state2, oldManifold, contact->GetManifold());(state2[0] == b2_addState)
{
//получение информации о столкнувшихся объектахBody* bodyA = contact->GetFixtureA()->GetBody();Body* bodyB = contact-
Copyright © 2008-2014 geum.ru рубрикатор по предметам рубрикатор по типам работ пользовательское соглашение