Разработка компьютерной игры - Программирование, компьютеры и кибернетика курсовая работа

Разработка компьютерной игры - Программирование, компьютеры и кибернетика курсовая работа



































Разработка легко модифицируемой игры типа tower defence (меняя фон и изображение объектов, можно получить как средневековые сценарии защиты, так и современные с участием ПВО, артиллерии, танков и самолетов). Применение механизма инкапсуляции, буферизация.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.


Белорусский Государственный Университет Информатики и Радиоэлектроники
Пояснительная записка к курсовому проекту
Разработать компьютерную игру и выполнить следующие требования:
Должно быть разработано и реализовано множество классов. Построить работу ООП программы на функционировании и взаимодействии объектов различных классов.
Более 90 % современных детей и множество взрослых играют в видеоигры.
Но так ли они полезны, как говорят? Что касается взрослых, то они сами в состоянии решить, нужны им эти игры или нет. Многих компьютерные игры просто спасают, так как помогают пережить тяжёлое время (особенно во время болезни) или стресс, когда рядом никого из близких людей нет. Но как быть с детьми? На самом ли деле видеоигры их развивают, а если это так, то сколько времени им можно уделять без ущерба для гармоничного развития детей и подростков?
США (университет штата Иллинойс) такие же опыты провели с людьми старше 60 лет. И оказалось, что для них видеоигры полезны - они способствуют улучшению рабочей (кратковременной) памяти, ускоряют мозговую деятельность и т.д.
А как быть с детьми? Этим вопросом даже занимался Европейский парламент, настолько его достали предупреждения педагогов, психологов и других специалистов. И что вы думаете? Европарламент не нашёл доказательств того, что видеоигры вредны для детей. По мнению европарламентариев, даже жестокие игры полезны для детей. Многие игры развивают стратегическое, творческое, нестандартное мышление, а групповые игры учат взаимодействию между людьми.
Однако психологи не пришли к единому мнению о влиянии видеоигр на детей. Некоторые из них считают, что такие игры провоцируют агрессию. По мнению других, многие игры помогают развивать как умственные способности, так и социальные навыки. Возможно, как всегда, правы и те, и другие. В то же время учёные с тревогой отмечают признаки зависимости подростков в возрасте от 8 до 18 лет от видеоигр, похожей на наркотическую, что негативно влияет на другие стороны их личной жизни.
Видеоигры могут развлекать и развивать ребёнка. Однако они отнимают время, которое он мог бы потратить на другие занятия. По данным исследований, проведенных в России, подростки, увлекающиеся видеоиграми, тратят на домашние задания примерно на 40 % меньше времени, чем это было бы нужно, а на чтение - на 30 % меньше времени. Поэтому дело родителей - регулировать время, которое дети проводят за видеоиграми.
Таким образом, видеоигры могут быть полезными, а могут и навредить. Если дети занимаются ими в разумных пределах, это способствует, наряду с другой их деятельностью, умственному развитию и помогает усваивать новые навыки. Прежде всего, ребёнок приобретает и совершенствует навыки работы с компьютером, что пригодится ему при дальнейшем обучении. Правильно подобранные видеоигры развивают у детей мышление, внимание и логику, память и способность принимать решения. Управление видеоигрой улучшает координацию движений ребёнка. Обучающие игры помогают подготовить его к школе. Групповые видеоигры учат терпению и взаимодействию в группе. Некоторые игры развивают творческое воображение.
В то же время нужно приучать ребёнка больше читать книги и чаще бывать на свежем воздухе. Нужно помнить, что чрезмерное увлечение видеоиграми сдерживает развитие лобных долей мозга, отвечающих за логичное поведение и интеллектуальные способности. Так что всё хорошо в меру.
Так что научно-технический прогресс - это хорошо, если правильно его использовать.
Обзор существующих программных продуктов
Игр типа tower defence множество. Задача в таких играх, как правило, сводится к защите своего замка, дворца, базы от врагов путем расстановки оборонительных сооружений (башни, стены и т.д.) С каждым уровнем враги становятся все сильнее и сильнее. Защитные башни тоже можно модернизировать, покупать новые, ставить на них более мощные орудия. Отбить атаку можно обычно только путем правильной расстановки башен в определенных местах.
Как правило, существующие игры привязаны к средневековым и современным военным сценариям.
В разрабатываемом проекте предлагается расширить границы существующих проектов до космического пространства - и соответственно опробовать перспективные средства поражения.
Поле боя - космическое пространство, перспективные средства защиты лазерные батареи различной мощности, в качестве модели армии вторжения выбраны объекты, у которых возможны самые невероятные летные и огневые характеристики (НЛО).
Что касается трасс движения армии нападения - то генерация случайным образом набора промежуточных контрольных точек трассы для каждого объекта (или волны нападения объектов) позволяет разнообразить сценарий игры.
Задача курсового проекта создать игру при этом создать ряд классов, объекты которых будут взаимодействовать между собой. Графический интерфейс игры должен удовлетворять современным требованиям к подобным проектам.
В реализованном проекте можно расширять количество классов, порождая классы наследники от классов Tower и SpaceShip, тем самым увеличивая разнообразие, как средств нападения, так и средств защиты.
Математическая модель, положенная в основу проекта.
Основная сложность при реализации проекта - это движение объекта по сложной траектории.
В качестве модели траектории выбрана ломанная кривая, позволяющая адекватно представить сколь угодно сложную траекторию движения достаточно простой математической моделью. Рассмотрим отдельный участок ломанной кривой:
Объект движется по участку от до с шагом .
Программная модель курсового проекта
Для улучшения отображения игровых объектов на экране монитора использовалась двойная буферизация. Проясним некоторые специфические термины связанные с двойной буферизацией.
Рендеринг- это процесс подготовки, выдачи (прорисовки) изображения на экран. В общем, это все действия, которые связаны с выдачей картинки на экран.
Буфер - это область для временного хранения данных.
Двойная буферизация- это один из способов рендеринга, при котором существует два буфера. Содержимое первого (переднего) буфера (front buffer) показываеться на экран и вы видите какое то изображение. В это время на заднем буфере (back buffer) подготавливается следующий кадр (рисуется). Когда кадр на заднем буфере готов, тогда передний и задний буфер меняются местами. И затем все это повторяется. С помощью такой технологии избегается мерцание экрана.
В проекте используется следующая система классов (на схемах указаны лишь основные классы и основные атрибуты и функции):
Логика взаимодействия игровых объектов реализована в функциях событиях windows-формы.
Контроль качества курсового проекта
Разрабатываемый проект должен обладать следующими примитивами качества:
Завершенность (completeness) ? свойство, характеризующее степень обладания ПС всеми необходимыми частями и чертами, требующимися для выполнения своих явных и неявных функций.
Автономность (self-containedness) ? свойство, характеризующее способность ПС выполнять предписанные функции без помощи или поддержки других компонент программного обеспечения.
Коммуникабельность (communicativeness) ? свойство, характеризующее степень, в которой ПС облегчает задание или описание входных данных, и способность выдавать полезные сведения в достаточно простой форме и с простым для понимания содержанием.
Временная эффективность (time efficiency) ? мера, характеризующая способность ПС выполнять возложенные на него функции в течение определенного отрезка времени.
Структурированность (structuredness) ? свойство, характеризующее программы ПС с точки зрения организации взаимосвязанных их частей в единое целое определенным образом (например, в соответствии с принципами структурного программирования).
Удобочитаемость (readability) ? свойство, характеризующее легкость восприятия текста программ ПС (отступы, фрагментация, форматированность).
Расширяемость (augmentability) ? свойство, характеризующее способность ПС к использованию большего объема памяти для хранения данных или расширению функциональных возможностей отдельных компонент.
Модифицируемость (modifiability) ? мера, характеризующая ПС с точки зрения простоты внесения необходимых изменений и доработок на всех этапах и стадиях жизненного цикла ПС.
Модульность (modularity) ? свойство, характеризующее ПС с точки зрения организации его программ из таких дискретных компонент, что изменение одной из них оказывает минимальное воздействие на другие компоненты.
В процессе разработки использовался метод нисходящей отладки, т. е. в процессе разработки тестировался каждый добавляемый класс или функция в порядке их добавления в проект. Таким образом, была реализована автономная отладка программы. Далее была проведена комплексная отладка программного средства - тестировался весь сценарий игры от начала и до конца, с одновременной балансировкой первичной экономической модели игры.
Использование программного продукта
В процессе игры возможна как предварительная расстановка башен, так и расстановка их в ходе атаки НЛО - для этого используется кнопка «Башня», с последующим указание мышью позиции установки башни.
Для улучшения характеристик огневой точки используется следующий алгоритм - выделение мышью башни, а затем кнопками “Огонь” и “Радиус” улучшаются соответствующие характеристики огневой точки.
Кнопка “Старт” используется для запуска очередной волны нападения.
Экономическая модель достаточно проста - установка и модернизация лазерных батарей требует определенных ресурсов. В начале игры доступно ограниченное количество ресурсов, которое в процессе игры пополняется после уничтожения атакующих НЛО.
Цель игры защитить лазерными батареями Землю от бомбардировок со стороны НЛО.
Приложение Dreaming of Space является типичным приложением-формой Windows.
В качестве среды разработки использовалась Microsoft Visual Studio 2008. В качестве языка программирования для реализации проекта используется C#. Каждый класс, входящий в проект, реализован в отдельном файле.
Возможны следующие модификации программы :
1) Увеличение разнообразия средств защиты и нападения - путем ввода новых классов или классов наследников.
2) Дальнейшее развитие системы улучшений огневых точек.
3) Меняя фон и графику объектов можно разнообразить сценарии игры.
В результате реализации проекта была достигнута следующая цель - разработана легко модифицируемая игра типа tower defence (меняя фон и изображение объектов можно легко получить как средневековые сценарии защиты, так и современные с участием ПВО, артиллерии, танков и самолетов).
В ходе реализации проекта получены основательные навыки работы с инкапсуляцией данных. И можно сделать вывод, что во многих случаях механизм инкапсуляции существенно помогает упростить задачу программирования сложных систем.
1. Жарков В. А., «Компьютерная графика, мультимедиа и игры на Visual C# 2005», Москва «Жарков пресс», 2005
2. Конспект лекций по курсу «Объектно-ориентированное программирование», БГУИР кафедра информатики
3. А. А. Волосевич «Избранные главы информатики», Минск, БГУИР, кафедра информатики, 2006
public int x_MouseDown_1, y_MouseDown_1;
SpaceInvasion InvasionWave = new SpaceInvasion();
private void Form1_Load(object sender, EventArgs e)
this.SetStyle(ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint, true);
SpaceShip[InvasionWave.MaxUfoQuantity];
for (int i = 0; i < InvasionWave.MaxUfoQuantity; i++)
InvasionWave.UfoInvasion[i] = new SpaceShip();
private void timer1_Tick(object sender, EventArgs e)
textBox1.AppendText(OurPRO.money.ToString());
private void button1_Click(object sender, EventArgs e)
if ((InvasionWave.CheckWaveIsDestroyed() ==
false)&&(InvasionWave.current_number_invasion_wave>0)) return;
InvasionWave.current_number_invasion_wave++;
InvasionWave.start_invasion = true;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
//Определяем координаты указателя в момент нажатия кнопки:
x_MouseDown_1 = e.X; y_MouseDown_1 = e.Y;
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
OurPRO.DetectSelectObject(x_MouseDown_1, y_MouseDown_1);
if (OurPRO.CheckDistanse(x_MouseDown_1, y_MouseDown_1) == false) return;
if (OurPRO.set_tower_enabled == false) return;
if ((OurPRO.DetectSelectObject(x_MouseDown_1, y_MouseDown_1) == false) && (OurPRO.money >= 2000))
Graphics myGraphics = CreateGraphics();
OurPRO.SetNewTower(x_MouseDown_1, y_MouseDown_1, myGraphics);
public bool OpenFire(PaintEventArgs e)
for (int j = 0; j < InvasionWave.CurrentInvasionQuantity; j++)
for (int i = 0; i < OurPRO.TowerQuantity; i++)
if ((InvasionWave.UfoInvasion[j].pos_of_ufo_x -
(InvasionWave.UfoInvasion[j].pos_of_ufo_x -
(InvasionWave.UfoInvasion[j].pos_of_ufo_y -
(InvasionWave.UfoInvasion[j].pos_of_ufo_y -
< OurPRO.ProSolarSys[i].fire_distance *
OurPRO.ProSolarSys[i].fire_distance)
if (InvasionWave.UfoInvasion[j].armor <= 0)
OurPRO.money += InvasionWave.UfoInvasion[j].cargo;
InvasionWave.UfoInvasion[j].cargo = 0;
e.Graphics.DrawLine(myPen, OurPRO.ProSolarSys[i].Pos.X,
InvasionWave.UfoInvasion[j].pos_of_ufo_x, InvasionWave.UfoInvasion[j].pos_of_ufo_y);
InvasionWave.UfoInvasion[j].armor = InvasionWave.UfoInvasion[j].armor -
private void pictureBox1_Paint(object sender, PaintEventArgs e)
Bitmap mySpace = new Bitmap(@"d:\solar_system_bg.bmp");
e.Graphics.DrawImage(mySpace, 0, 0);
InvasionWave.DrawInvasion(e, Earth);
for (int i = 0; i < OurPRO.TowerQuantity; i++)
OurPRO.ProSolarSys[i].SetTower(OurPRO.ProSolarSys[i].Pos.X, OurPRO.ProSolarSys[i].Pos.Y, e.Graphics);
MessageBox.Show("Сражение проиграно", "Но решающие сражения впереди!",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
private void button2_Click(object sender, EventArgs e)
if (OurPRO.TowerQuantity < OurPRO.MaxTowerQuantity)
private void button4_Click(object sender, EventArgs e)
for (int i = 0; i < OurPRO.TowerQuantity; i++)
if ((OurPRO.ProSolarSys[i].select == true) &&
(OurPRO.ProSolarSys[i].fire_distance < OurPRO.max_fire_distance) &&
OurPRO.ProSolarSys[i].fire_distance += 5;
private void button3_Click(object sender, EventArgs e)
for (int i = 0; i < OurPRO.TowerQuantity; i++)
if ((OurPRO.ProSolarSys[i].select == true)
&& (OurPRO.ProSolarSys[i].damage < OurPRO.max_damage)
private void timer2_Tick(object sender, EventArgs e)
if (InvasionWave.UfoQuantity < InvasionWave.CurrentInvasionQuantity)
private void button2_Click_1(object sender, EventArgs e)
if (OurPRO.TowerQuantity < OurPRO.MaxTowerQuantity)
if (OurPRO.set_tower_enabled == true)
public bool set_tower_enabled = false;
public Tower[] ProSolarSys = new Tower[50];
public bool DetectSelectObject(int x_MouseDown_1, int y_MouseDown_1)
for (int i = 0; i < TowerQuantity; i++)
if ((x_MouseDown_1 - ProSolarSys[i].Pos.X) * (x_MouseDown_1 - ProSolarSys[i].Pos.X) +
(y_MouseDown_1 - ProSolarSys[i].Pos.Y) * (y_MouseDown_1 - ProSolarSys[i].Pos.Y) < 25)
else ProSolarSys[i].select = false;
public bool CheckDistanse(int x_MouseDown_1, int y_MouseDown_1)
for (int i = 0; i < TowerQuantity; i++)
if ((x_MouseDown_1 - ProSolarSys[i].Pos.X) * (x_MouseDown_1 - ProSolarSys[i].Pos.X) +
(y_MouseDown_1 - ProSolarSys[i].Pos.Y) * (y_MouseDown_1 - ProSolarSys[i].Pos.Y) < 900)
public bool SetNewTower(int x_MouseDown_1, int y_MouseDown_1, Graphics myGraphics)
//Graphics myGraphics = CreateGraphics();
ProSolarSys[TowerQuantity] = NewTower;
ProSolarSys[TowerQuantity].SetTower(x_MouseDown_1, y_MouseDown_1, myGraphics);
public bool start_invasion = false;
public int current_number_invasion_wave = 0; //номер волны нашествия
public int max_number_invasion_wave = 20;
//public SpaceShip[] UfoInvasion = new SpaceShip[20];
public int UfoQuantity = 1; //колличество кораблей вышедших из подпространства
public int CurrentInvasionQuantity = 1;
public bool DrawInvasion(PaintEventArgs e, Planet Earth)
for (int i = 0; i < UfoQuantity; i++)
if (UfoInvasion[i].CalculateTrace() == true)
UfoInvasion[i].UfoOpenFire(e, Earth);
if (current_number_invasion_wave > max_number_invasion_wave)
MessageBox.Show("Космос наш", "Победа!",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
CurrentInvasionQuantity = current_number_invasion_wave;
for (int i = 0; i < MaxUfoQuantity; i++)
UfoInvasion[i].max_armor = 100 * current_number_invasion_wave;
UfoInvasion[i].armor = UfoInvasion[i].max_armor;
UfoInvasion[i].cargo = 100 * current_number_invasion_wave;
UfoInvasion[i].fire_power = 1000 * current_number_invasion_wave;
UfoInvasion[i].critical_damage = 10 + current_number_invasion_wave;
UfoInvasion[i].SpaceTrace1.GetRandomTrace();
for (int i = 0; i < CurrentInvasionQuantity; i++)
if ((UfoInvasion[i].armor <= 0) || (UfoInvasion[i].CalculateTrace() == false))
if (count == CurrentInvasionQuantity) return true;
public SpaceTrace SpaceTrace1 = new SpaceTrace();
public int pos_of_ufo_x, pos_of_ufo_y;
public SpaceShip() { pos_of_ufo_x = SpaceTrace1.way[0, 0]; pos_of_ufo_y = SpaceTrace1.way[0, 1]; }
//оптимальный вариант случайная генерация трассы в виде ломаной кривой
pos_of_ufo_x = SpaceTrace1.way[0, 0]; pos_of_ufo_y = SpaceTrace1.way[0, 1]; index = 0; dl = 0;
if (index == SpaceTrace1.way.GetLength(0) - 1) return false;
x2 = SpaceTrace1.way[index + 1, 0];
y2 = SpaceTrace1.way[index + 1, 1];
double tmp_x = 0, tmp_x1, tmp_x2, tmp_y;
tmp_x1 = x1 + dl * (x2 - x1) / System.Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
tmp_x2 = x1 - dl * (x2 - x1) / System.Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
if ((x2 - x1 >= 0) && (tmp_x1 > x1)) tmp_x = tmp_x1;
if ((x2 - x1 >= 0) && (tmp_x2 > x1)) tmp_x = tmp_x2;
if ((x2 - x1 < 0) && (tmp_x1 < x1)) tmp_x = tmp_x1;
if ((x2 - x1 < 0) && (tmp_x2 < x1)) tmp_x = tmp_x2;
if (y2 - y1 < 0) { tmp_y = y1 - dl; tmp_x = x1; }
else { tmp_y = y1 + dl; tmp_x = x1; }
else tmp_y = y1 + (tmp_x - x1) * (y2 - y1) / (x2 - x1);
if ((x2 - x1 <= 0) && (y2 - y1 <= 0) && (posX <= x2)/* && (posY <= y2)*/) { index++; dl = 0; }
if ((x2 - x1 > 0) && (y2 - y1 < 0) && (posX >= x2) /*&& (posY <= y2)*/) { index++; dl = 0; }
if ((x2 - x1 >= 0) && (y2 - y1 >= 0) && (posX >= x2)/* && (posY >= y2)*/) { index++; dl = 0; }
if ((x2 - x1 < 0) && (y2 - y1 > 0) && (posX <= x2) /*&& (posY >= y2)*/) { index++; dl = 0; }
pos_of_ufo_x = (int)System.Math.Ceiling(tmp_x);
pos_of_ufo_y = (int)System.Math.Ceiling(tmp_y);
public bool Redraw_Ufo(PaintEventArgs e)
//Создаем и рисуем летающую тарелку:
Rectangle myRectangle1 = new Rectangle(
new Point(pos_of_ufo_x - 10, pos_of_ufo_y - 10),
e.Graphics.DrawRectangle(new Pen(Color.Transparent),
myBrush1 = new LinearGradientBrush(myRectangle1,
myBrush1 = new LinearGradientBrush(myRectangle1,
e.Graphics.FillEllipse(myBrush1, myRectangle1);
Rectangle myRectangle2 = new Rectangle(
new Point(pos_of_ufo_x - 5, pos_of_ufo_y - 5),
e.Graphics.DrawRectangle(new Pen(Color.Transparent),
myBrush2 = new LinearGradientBrush(myRectangle2,
myBrush2 = new LinearGradientBrush(myRectangle2,
e.Graphics.FillEllipse(myBrush2, myRectangle2);
int life = (int)System.Math.Ceiling((double)20*armor/max_armor);
Pen myPen = new Pen(Color.LightGreen, 2);
e.Graphics.DrawLine(myPen, pos_of_ufo_x - 10, pos_of_ufo_y - 15, pos_of_ufo_x - 10+life, pos_of_ufo_y - 15);
public bool UfoOpenFire(PaintEventArgs e, Planet TargetPlanet)
int target_x = TargetPlanet.pos_x, target_y = TargetPlanet.pos_y, target_R = TargetPlanet.R_orbit;
if ((pos_of_ufo_x - target_x) * (pos_of_ufo_x - target_x) +
(pos_of_ufo_y - target_y) * (pos_of_ufo_y - target_y) < target_R*target_R)
TargetPlanet.planet_life -= fire_power;
e.Graphics.DrawLine(myPen, pos_of_ufo_x, pos_of_ufo_y,
public int[,] way = { {873,672}, {270,670}, {630,500}, {864,330}, {860,97}, {536,260}, {404,241},
GraphicsPath myGraphicsPath3 = new GraphicsPath();
for (int i = 1; i < way.GetLength(0) - 1; i++)
public void DrawWay(Graphics myGraphics)
Point[] points = new Point[way.GetLength(0)];
for (int i = 0; i < way.GetLength(0); i++)
points[i] = new Point(way[i, 0], way[i, 1]);
myGraphics.DrawPath(new Pen(Color.White, 1),
public bool SetTower(int x_MouseDown_1, int y_MouseDown_1, Graphics myGraphics)
Pen myPen = new Pen(Color.Black, 1);
// Graphics myGraphics = CreateGraphics();
Rectangle myRectangle = new Rectangle(
new Point(x_MouseDown_1-5, y_MouseDown_1-5),
myGraphics.DrawRectangle(new Pen(Color.Transparent),
Pen myPen1 = new Pen(Color.Red, 1);
myPen1.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
myGraphics.DrawEllipse(myPen1, x_MouseDown_1 - fire_distance, y_MouseDown_1 - fire_distance,
fire_distance * 2, fire_distance*2);
myBrush = new LinearGradientBrush(myRectangle,
myGraphics.FillEllipse(myBrush, myRectangle);
String drawString = damage.ToString();
Font drawFont = new Font("Arial", 8);
SolidBrush drawBrush = new SolidBrush(Color.Green);
// Create point for upper-left corner of drawing.
myGraphics.DrawString(drawString, drawFont, drawBrush, x, y);
if (select == true) Select(myGraphics);
public bool Select(Graphics myGraphics)
Pen myPen = new Pen(Color.ForestGreen, 1);
Point[] SelectPoints = new Point[3];
myGraphics.DrawLines(myPen, SelectPoints);
myGraphics.DrawLines(myPen, SelectPoints);
myGraphics.DrawLines(myPen, SelectPoints);
myGraphics.DrawLines(myPen, SelectPoints);
Общие сведения и существующие среды реализации компьютерной игры "Лабиринт". Разработка алгоритмов в виде блок-схемы, принципы программной реализации игры. Особенности тестирования разработанного программного продукта. Аспекты эксплуатации продукта. курсовая работа [1,4 M], добавлен 18.01.2017
Разработка компьютерной игры "Эволюция" с помощью игрового движка Unit. Сравнение критериев игры-аналога и разрабатываемой игры. Разработка графического интерфейса пользователя. Настройки камеры в редакторе Unity. Структура файла сохранения игры. дипломная работа [3,6 M], добавлен 11.02.2017
Разработка и реализация компьютерной игры "Змейка" с помощью языка программирования Pascal и модуля CRT. Составление общего алгоритма программы, выделение ее функциональных частей. Разработка тестовых примеров. Использование типизированных файлов. курсовая работа [2,1 M], добавлен 23.02.2011
Описание правил игры "Морской бой". Особенности современных компьютеров и искусственного интеллекта. Создание общей блок-схемы программы, ее внешний вид. Необходимые переменные, процедуры и функции. Характеристика объектов, используемых в приложении. курсовая работа [950,1 K], добавлен 05.11.2012
Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы. курсовая работа [160,3 K], добавлен 03.12.2014
Алгоритмическое представление и описание правил игры "Эволюция". Построение диаграммы прецедентов. Разработка графического интерфейса пользователя. Реализация интерфейса в среде Unity. Структура файла сохранения игры. Проектирование поведения компьютера. дипломная работа [3,3 M], добавлен 18.02.2017
Приемы практического использования объектно-ориентированного подхода в создании законченного программного продукта. Разработка кроссплатформенной компьютерной игры "Морской бой". Принципы "хорошего стиля программирования C++/Qt". Описание классов игры. курсовая работа [2,7 M], добавлен 12.08.2014
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Разработка компьютерной игры курсовая работа. Программирование, компьютеры и кибернетика.
Курсовая работа по теме S-элементы
Импедансный Метод Дипломная Работа Pdf
Оруэлл Эссе Скачать
Отчет по практике: Вивчення виробничо-господарської діяльності ВАТ "АТП – 16330"
Контрольная Работа Номер Два По Теме
Поленов Московский Дворик Сочинение
Реферат: Методика проведения открытого урока по теме Белки
Реферат: Школа научного менеджмента и ее вклад в теорию и практику менеджмента
Состав Административного Правонарушения Курсовая Работа
Диссертация Внедрение Технологии В Доу
Каков Объем Итогового Сочинения
Сочинение На Тему Внешность И Характер Человека
Реферат: Cuba Crimes Against Human Rights Essay Research
Реферат: Автоматизированное управление в технических системах. Скачать бесплатно и без регистрации
Реферат: Политическая система Италии. Скачать бесплатно и без регистрации
Курсовая работа по теме Истоки театрального искусства эпохи античности
Реферат: Nfl Coaches Essay Research Paper 12 Anderson
Дипломная работа по теме Использование новых информационных технологий как средства стимулирования учебной деятельности при изучении иностранного языка
Дипломная Работа Новорожденные
Курсовая Работа По Гражданскому Праву На Тему Право Собственности Граждан
Субъекты трансграничных отношений - Государство и право реферат
Разработка бизнес-плана тренажерного зала - Маркетинг, реклама и торговля бизнес-план
Ввод автомобілів до експлуатації та приведення їх у готовність до використання за призначенням - Военное дело и гражданская оборона лекция


Report Page