
Проектирование игрового симулятора
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
>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).
Программное обеспечение является одним из видов обеспечения вычислительной системы, наряду с техническим (аппаратным), математическим, информационным, лингвистическим, организационным и методическим обеспечением.
Программное обеспечение принято по назначению подразделять на системное, прикладное и инструментальное, а по способу распространения и использования на несвободное и закрытое, открытое и свободное. Свободное программное обеспечение может распространяться, устанавливаться и использоваться на любых компьютерах дома, в офисах, школах, вузах, а также коммерческих и государственных учреждениях без ограничений.
Для напи