MIDlet Pascal
Поиск по сайту
Форма входа

Статистика

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


Яндекс.Метрика

Друзья сайта
IT юмор - развлечения
Заработать в интернете - легко!Просто сиди и кликай.
Понедельник, 28.05.2018, 04.10.28
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
Урок №18 - Урок №4 враг - Cosmo_shoter
Здравствуйте, в этом уроке мы добавим врага, у будем его безжалостно растреливать.И так начнем с того что добавим новые переменные

bot,bb:integer; // эта переменная будет оповещать нас о том что в данный момент делает бот
lifebot:boolean; //эта переменная будет обозначать жив ли бот

и так теперь создадим новые процедуры:
Процедура когда корабль противника вылетает:

Procedure newbot;
begin
  if not lifebot then //если не живой бот, то оживляем
    begin
      ybot:=-30;
      xbot:=random(w-15)+1;
      lifebot:=true;
    end else //иначе
      begin
        ybot:=ybot+5;//двигаем бота вперед
        if ybot=10 then bot:=2;//если бот выехал полностью тогда все
      end;
  DrawImage(botim,xbot,ybot);
end;

процедура перемещени врага:

Procedure movbot;
begin
  if left then xbot:=xbot-speedxbot// если двигатся влево, то двигаемся в лево
    else xbot:=xbot+speedxbot; //иначе впрво
  if xbot<0 then xbot:=0;
  if xbot>w-15 then xbot:=w-15;
  if xbot=0 then left:=false;
  if xbot=w-15 then left:=true;
  DrawImage(botim,xbot,ybot);
end;

процедура взрыва врага:

Procedure boombot;
begin
  bb:=bb+1;//Здесь записывается стадия взрыва
  if bb<>4 then DrawImage(botim,xbot,ybot);
  DrawImage(boom[bb],xbot-7,ybot);//Выводим картинку на экран
  if bb=4 then bot:=1;//4-ая стадия взрыва последня.Оживляем бота
end;

и теперь в цикле игры прописываем перед repaint;

if bot=3 then boombot; 
if bot=2 then movbot;
if bot=1 then newbot;

Теперь учим пули, что при прикосновении к кораблю противника, уничтожить его.Это мы пропишем в процедуре movbot перед "DrawImage(bot,xbot,ybot);" прописываем:

if (shot) and ((ypshot<ybot+30) and (ypshot>ybot-5)) and ((xpshot<xbot+15) and (xpshot>xbot)) then 
  begin
    lifebot:=false; //убиваем бота
    bot:=3; //ставим что бы он взорвался
    bb:=0;
  end;

А теперь смахивая на количество убитых противников, мы будем ускорять корабль противника.
Для добавим еще переменные:

score:integer;

теперь модифицируем строку в процедуре boombot

if bb=4 then bot:=1; меняем на 
if bb=4 then 
  begin
    bot:=1;
    speedxbot:=speedxbot+1;
    score:=score+1; //засчитываем убитый корабль
  end;

а теперь добавим отображения количества убитых врагов.в процедуре game перед repaint добавляем

DrawText('Убито '+score+' враг(ов)(а)',0,0);

теперь с каждым проиграшем корабль противника будет быстрее
на этом все.В следующем уроке мы научим бота отбиватся и двигатся в перед, тоисть когда он дойдет до корабля игрока, игрок проигрывает P.S. камикадзе XD.
Автор:Стадник Владимир

← Урок №17Урок №19 →
Если вы нашли ошибки/очепятки в тексте то сообщите о них на форуме
А также можете заказать программу/игру на этой странице

www.parkflyer.ru - радиоуправляемые модели, радиоуправляемые модели самолетов, магазин радиоуправляемых моделей
Роспись стен, скульптуры на заказ
Wladymyr © 2012-2018
Создать бесплатный сайт с uCoz