Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Четверг, 09.01.2025, 06:57
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Игровые алгоритмы

Процедура убивания монстров
Данная процедура отвечает за очистку монстров с игровой карты и их появление со временем с улучшенными параметрами.

procedure DeadMonsters(ix,iy:integer);
var
ss:TObject;
iii,jjj:Integer;
begin

if Monsters[ Karta.monsters[ix,iy,2] ].health<=0 then
begin
RealKvest(ss);
//ubivaniye monstra
case Monsters[ Karta.monsters[ix,iy,2] ].tip of
1:begin
Player.opit:=Player.opit+Monsters[ Karta.monsters[ix,iy,2] ].healthMax;

//povisheniye harakteristik posle smerti
MonstrHighLevel(ix,iy);

//vikidivaniye zolota
if Karta.predmets[ix,iy]=0 then
Karta.predmets[ix,iy]:=937
else
begin
for iii:=ix-1 to ix+1 do
for jjj:=iy to iy+2 do
begin
if Karta.predmets[iii,jjj]=0 then
break;
end;
Karta.predmets[iii,jjj]:=937;
end;
end;

2:begin
Player.opit:=Player.opit+Monsters[ Karta.monsters[ix,iy,2] ].healthMax;

//povisheniye harakteristik posle smerti
MonstrHighLevel(ix,iy);

//vikidivaniye zolota
if Karta.predmets[ix,iy]=0 then
Karta.predmets[ix,iy]:=940
else
begin
for iii:=ix-1 to ix+1 do
for jjj:=iy to iy+2 do
begin
if Karta.predmets[iii,jjj]=0 then
break;
end;
Karta.predmets[iii,jjj]:=940;
end;
end;

3:begin
randomize;
Player.opit:=Player.opit+Monsters[ Karta.monsters[ix,iy,2] ].healthMax;

//povisheniye harakteristik posle smerti
MonstrHighLevel(ix,iy);

//vikidivaniye artefakta
if Karta.predmets[ix,iy]=0 then
Karta.predmets[ix,iy]:=random(1000)+1
else
begin
for iii:=ix-1 to ix+1 do
for jjj:=iy to iy+2 do
begin
if Karta.predmets[iii,jjj]=0 then
break;
end;
Karta.predmets[iii,jjj]:=random(1000)+1;
end;
end;

4:begin
randomize;
Player.opit:=Player.opit+Monsters[ Karta.monsters[ix,iy,2] ].healthMax;

//povisheniye harakteristik posle smerti
MonstrHighLevel(ix,iy);

//vikidivaniye zolota
if Karta.predmets[ix,iy]=0 then
Karta.predmets[ix,iy]:=random(100)+1
else
begin
for iii:=ix-1 to ix+1 do
for jjj:=iy to iy+2 do
begin
if Karta.predmets[iii,jjj]=0 then
break;
end;
Karta.predmets[iii,jjj]:=random(1000)+1;
end;
end;

end;

//ochistka karti ot ubitogo monstra
Karta.prohodimost[ix,iy]:=true;
Monsters[ Karta.monsters[ix,iy,2] ].Visible:=false;
Monsters[ Karta.monsters[ix,iy,2] ].Poyavleniye:=0;

//proverka na povisheniye urovnya
HighLevel;

end;

end;
Категория: Игровые алгоритмы | Добавил: Armageddets (07.01.2013)
Просмотров: 811 | Теги: Процедура убивания монстров | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Какие уроки по созданию игр Вам удобнее?
Всего ответов: 141
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 4
    Гостей: 4
    Пользователей: 0