Цели:
Задачи:
Структура данных о юнитах
Генерация случайной многоуровневой карты
Вид фрагмента карты в изометрии
Циклические команды юнита
Атака противников
Аналоги
Достоинства
Недостатки
Выводы
Перспективы
420.24K
Category: internetinternet

Игровая программа «Поселенцы»

1.

ЦДТ «Солнечный»
Игровая программа
«Поселенцы»
Автор: Мясников
Владислав Николаевич
Руководитель: Аргов
Дмитрий Игоревич
Рыбинск, 2016

2. Цели:


Создать градостроительный симулятор с
элементами ролевой игры
Сделать удобную и понятную для пользователя
систему управления юнитами
Закрепить навыки работы с динамическими
списками

3. Задачи:


Разработать удобную для работы над проектом
структуру данных
Сделать многоуровневую карту
Разработать подпрограмму случайной генерации
карты
Реализовать блок, отвечающий за выполнение
юнитами различных действий (движение,
исполнение заданной команды, атака
противника)

4. Структура данных о юнитах

pObject=^tObject;
tObject=Record
Next: pObject;
Type_, Action: byte;
i,j,h,di,dj,dh,fi,fj,fh: shortint;
vect,offs:shortint;
xp,damage,defence,skill:integer;
Oldx,oldy:array [0..1] of Integer;
AttackObj: pObject;
Bufer: array [0..1];
Komand: array [1..5];
End;

5. Генерация случайной многоуровневой карты

6. Вид фрагмента карты в изометрии

7. Циклические команды юнита

Ресурс=Wild
Да
Цель
достигнута?
Удаление растения
(камня)
-1 ед. запасов
обрабатываемого
ресурса
Начальная стадия
растения (камня)
Ресурс=Planted
Движение к
складу…
Tz^.Action:=komNaSklad

8.

Да
Достигли склада?
Нет
Да
Tz^.Action:=0
Поиск нового
ресурса данного
типа
Увеличение
resource
Буфер команд
пуст?
Новый ресурс
найден?
Нет
Перейти к следующей
поставленной команде
Да
Новая цель

9. Атака противников

Да
Да
Есть
противник
в зоне
видимости?
Враг в соседней
ячейке?
Tz^.Action:=KomAttack;
Tz^.AttackObj:=враг;
Враг^.AttackObj:=tz;
Враг^.Action:=KomAttack;
Нет
Нет
Движение в соседнюю
свободную ячейку…
Tz^.Action:=KomPresledovanie;
Tz^.fi, tz^.fj, tz^.fh <= координаты противника;

10.

Да
Tz^.action=komPresledovanie?
Да
Tz^.Action:=KomAttack;
Враг в соседней
ячейке?
Нет
Движение к противнику…

11.

Да
Нет
Враг в
соседней
ячейке?
Tz^.Action=KomAttack?
Tz^.action=
komPresledovanie
Да
tz^.AttackObj^.xp:=tz^.AttackObj^.xp-round(tz^.damagetz^.damage*tz^.attackobj^.defence/100);
Tz^.AttckObj^.xp<=0
Удалить объект
(противника) из списка
Сообщить союзникам о его
гибели

12. Аналоги


Игра «Towns»

13. Достоинства


Карта имеет псевдотрёхмерный вид
Многоуровневость ландшафта
Разнообразие построек и растительности
Многочисленность команд, выполняемых
юнитами
Условия приближены к реальным (голод,
нападения противников)

14. Недостатки


Мало разновидностей противников
Отсутствие торговли
Нельзя сохранить игру

15. Выводы

Удалось создать градостроительный симулятор,
в котором:
1) Разработана удобная структура данных
2) Реализована генерация случайной
многоуровневой карты
3)
• Закреплены навыки работы с динамическими
списками

16. Перспективы


Создание подземелья
Случайные события: засуха, бунт, пожар
Смена дня и ночи
Возможность сохранения игры
Большее число противников
Реализация торговли, создание рынка
Погодные условия: дождь, гроза с молниями
English     Русский Rules