geum.ru - только лучшие рефераты!

Проектирование игрового симулятора

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



>GetFixtureB()->GetBody();*infoA=((inf *)(bodyA->GetUserData())),*infoB=((inf *)(bodyB->GetUserData()));

//Следующие условия определяют реакцию на столкновение объектов различных типов

//При столкновении двух пуль обе уничтожаются( (infoA->type==BULLET)&&(infoB->type==BULLET) ) {((c_projectile*)(infoA->owner))->dispose=true; ((c_projectile*)(infoB->owner))->dispose=true;}( (infoA->type==ENEMY_BULLET)&&(infoB->type==ENEMY_BULLET) ) {((c_projectile*)(infoA->owner))->dispose=true; ((c_projectile*)(infoB->owner))->dispose=true;}( (infoA->type==ENEMY_BULLET)&&(infoB->type==BULLET) ) {((c_projectile*)(infoA->owner))->dispose=true; ((c_projectile*)(infoB->owner))->dispose=true;}( (infoA->type==BULLET)&&(infoB->type==ENEMY_BULLET) ) {((c_projectile*)(infoA->owner))->dispose=true; ((c_projectile*)(infoB->owner))->dispose=true;}

//При столкновении противника с пулей игрока противнику наносится урон( (infoA->type==BULLET)&&(infoB->type==ENEMY) ) {((c_enemy*)(infoB->owner))->health-=((c_projectile*)(infoA->owner))->damage; ((c_projectile*)(infoA->owner))->dispose=true;}( (infoB->type==BULLET)&&(infoA->type==ENEMY) ) {((c_enemy*)(infoA->owner))->health-=((c_projectile*)(infoB->owner))->damage; ((c_projectile*)(infoB->owner))->dispose=true;}

//При столкновении игрока с пулей противника игроку наносится урон( (infoA->type==ENEMY_BULLET)&&(infoB->type==PLAYER) ) {((c_player*)(infoB->owner))->health-=((c_projectile*)(infoA->owner))->damage; ((c_projectile*)(infoA->owner))->dispose=true;}( (infoB->type==ENEMY_BULLET)&&(infoA->type==PLAYER) ) {((c_player*)(infoA->owner))->health-=((c_projectile*)(infoB->owner))->damage; ((c_projectile*)(infoB->owner))->dispose=true;}

}

Листинг 3.6 - Реализация меню

#include "globals.h"

#include "states.h"_Menu::c_Menu(c_stateManager* _manager):c_state()

{=_manager;=true;();

}_Menu::Init()

{=false;=new hgeFont("Data/font1.fnt");=new hgeGUI();>AddCtrl(new hgeGUIMenuItem(1,fnt,500,300,0.0f,""));>AddCtrl(new hgeGUIMenuItem(2,fnt,500,340,0.1f,""));>AddCtrl(new hgeGUIMenuItem(3,fnt,500,380,0.2f,""));>AddCtrl(new hgeGUIMenuItem(4,fnt,500,420,0.3f,""));>SetNavMode(HGEGUI_UPDOWN | HGEGUI_CYCLED);>SetCursor(cursor);>SetFocus(1);>Enter();=true;

}_Menu::Render()

{>Render(0,0);(Settings) s_player->RenderEx(600,360,0,0.25);>Render();_Menu::Update()

{(isActive)

{=hge->Timer_GetDelta();id;=0;=true;Scores=false;=gui->Update(dt);(Main)

{(hge->Input_KeyDown(HGEK_ESCAPE)) { lastid=4; gui->Leave();}(id == -1)

{(lastid)

{1:>Add(*(new c_Gameplay()));>SetFocus(1);>Enter();;2:(int i=4;i>0;gui->DelCtrl(i--));(Difficulty)

{1:>AddCtrl(new hgeGUIMenuItem(1,fnt,360,300,-1.0f," ",false,false));;2:>AddCtrl(new hgeGUIMenuItem(1,fnt,360,300,-1.0f," ",false,false));;:>AddCtrl(new hgeGUIMenuItem(1,fnt,360,300,-1.0f," ",false,false));;>AddCtrl(new hgeGUIMenuItem(2,fnt,360,360,-1.0f,"",false,false));>AddCtrl(new hgeGUIMenuItem(3,fnt,500,440,0.0f, "",false));=false;=true;>SetFocus(1);>Enter();;3:(int i=4;i>0;gui->DelCtrl(i--));>AddCtrl(new hgeGUIMenuItem(1,fnt,500,300,-1.0f," false,true,true));* tt;tt=new char;(tt,"%i\0",Score);>AddCtrl(new hgeGUIMenuItem(2,fnt,500,340,-1.0f,tt,false,true,true));>AddCtrl(new hgeGUIMenuItem(3,fnt,500,440,0.0f, "",false));=false;=true;>SetFocus(1);>Enter();;4: return true;i=1;

}

}if(id) { lastid=id; gui->Leave(); }

}(Settings)

{(hge->Input_KeyDown(HGEK_ESCAPE)) { lastid=3; gui->Leave();}(id == -1)

{(lastid)

{1:(Difficulty)

{1:=2;

((hgeGUIMenuItem*)gui->GetCtrl(1))->title=" ";;2:=3;

((hgeGUIMenuItem*)gui->GetCtrl(1))->title=" ";;:=1;

((hgeGUIMenuItem*)gui->GetCtrl(1))->title=" ";;

}>SetFocus(1);>Enter();;2:(Model)

{0:=1;;1:=2;;:=0;;

}_player->SetTextureRect(200*Model,0,200,200);>SetFocus(2);>Enter();;3:(int i=3;i>0;gui->DelCtrl(i--));>AddCtrl(new hgeGUIMenuItem(1,fnt,500,300,0.0f," "));>AddCtrl(new hgeGUIMenuItem(2,fnt,500,340,0.1f," "));>AddCtrl(new

hgeGUIMenuItem(3,fnt,500,380,0.2f,""));

gui->AddCtrl(new hgeGUIMenuItem(4,fnt,500,420,0.3f," "));=true;=false;>SetFocus(1);>Enter();;

}if(id) { lastid=id; gui->Leave(); }

}(Scores)

{(hge->Input_KeyDown(HGEK_ESCAPE)) { lastid=3; gui->Leave();}(id == -1)

{(lastid)

{1:>SetFocus(1);>Enter();;2:>SetFocus(1);>Enter();;3:(int i=3;i>0;gui->DelCtrl(i--));>AddCtrl(new hgeGUIMenuItem(1,fnt,500,300,0.0f,""));>AddCtrl(new hgeGUIMenuItem(2,fnt,500,340,0.1f,""));>AddCtrl(new hgeGUIMenuItem(3,fnt,500,380,0.2f,""));

gui->AddCtrl(new hgeGUIMenuItem(4,fnt,500,420,0.3f,""));=true;=false;>SetFocus(1);>Enter();;

}

}if(id) { lastid=id; gui->Leave(); }

}

}false;

}_Menu::Dispose()

{>~c_Menu();

}_Menu::~c_Menu()

{

}

.3 Выводы

В третьем разделе выбрана модель прототипа для проектирования программного продукта, в соответствии с которой разработан программный продукт LonelySpaceRanger. Код программы представлен на языке VisualС++. Данный ПП удовлетворяет всем требованиям заказчика, устойчив к сбоям, корректно работает под ОС Windows.

. Экономическое обоснование разработки программного продукта

.1 Характеристика программного продукта

В дипломной работе расiитывается цена программного продукта LonelySpaceRanger, для использования его в учебных заведениях и частными лицами.

Программный продукт позволяет реализовать определенные функции: реализм физических взаимодействий между объектами, удобный интерфейс позволяющий выбирать пользовательские настройки, использовать его для разработки более сложных программ.

Достоинства программного продукта состоит в его полезности, удобном интерфейсе, реализации и эксплуатации.

Для разработки программного продукта были использованные следующие носители: флеш карты, диски, дискеты.

Использовался:

-ОС (операционные системы): MS Windows., Windows SP;

-Офисные программы: MS Office;

-ПО для работы с электронными таблицами: MS Excel;

-Программы работы с изображениями: Adobe Photoshop, Corel DRAW Graphics Suite, векторный редактор Draw; (в составе Openоffice), другие;

-Широкий выбор антивирусов и фаерволов.

Программное обеспечение - совокупность программ, процедур и правил, а также документации, относящихся к функционированию системы обработки данных (СТ ИСО 2382/1-84).

Программное обеспечение является одним из видов обеспечения вычислительной системы, наряду с техническим (аппаратным), математическим, информационным, лингвистическим, организационным и методическим обеспечением.

Программное обеспечение принято по назначению подразделять на системное, прикладное и инструментальное, а по способу распространения и использования на несвободное и закрытое, открытое и свободное. Свободное программное обеспечение может распространяться, устанавливаться и использоваться на любых компьютерах дома, в офисах, школах, вузах, а также коммерческих и государственных учреждениях без ограничений.

Для напи