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

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

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

Главная » Статьи » Уроки по созданию игр

Игра Танчики часть 4 завершение
Далее в свойсте формы FormKeyDown (при нажатии клавиш клавиатуры) пишем обработку клавиатуры т.е. наш код будет слідить за тем, какие клавиши нажаты и изменять в святи с этим наши переменные

if key=87 then
begin
qUp:=true;
Tank[1].Go:=true;
Tank[1].Povorot:=1;
end;

if key=65 then
begin
qLeft:=true;
Tank[1].Go:=true;
Tank[1].Povorot:=4;
end;

if key=83 then
begin
qDown:=true;
Tank[1].Go:=true;
Tank[1].Povorot:=3;
end;

if key=68 then
begin
qRight:=true;
Tank[1].Go:=true;
Tank[1].Povorot:=2;
end;

if (key=32) and (Tank[1].vistrelil=false) then
begin
Tank[1].Fight:=true;
end;

В таймере мы делаем необходимые расчеты игры и делаем ее прорисовку. Здесь же задам и поведение соперников и выстрелы пуль и все что нужно для прорисовки.
В свойстве формы FormKeyUp (при отпускании клавиш) изменяем переменные на неактивне:
if (key=87) then qUp:=false;
if (key=65) then qLeft:=false;
if (key=83) then qDown:=false;
if (key=68) then qRight:=false;
if (qUp=false) and (qLeft=false) and (qDown=false) and (qRight=false) then Tank[1].Go:=false;
Во втором таймере мы делаем следующие действия:
for i:=1 to 4 do
for j:=1 to 2 do
form1.Canvas.Draw(i*60,j*60,Tanki[3,i,j]);

Если чесно, то это можно сделать и в первом таймере. Обычно я использую разные таймеры, если хочу чтобы скорость расчетов и прорисовки в разных таймерах была разной (Например карта прорисовывается с одной скоростью и двигаються танки соперника, а наш танк с другой и т.д. )
Теперь в свойстве формы FormClick (при клике по форме мышкой) сделаем чтобы игра начиналась заново (нужно при неправильно сгенерированной карте или других моментах которые нас не устраивают). Таким образом можно будет кликнуть по карте и загрузиться новый тур:
Timer1.Enabled:=false;
qUp:=false;
qDown:=false;
qLeft:=false;
qRight:=false;
Tank[1].x:=60;
Tank[1].y:=540;
Tank[1].Go:=false;
if Tank[1].Visible=true then showmessage('ТУР Пройден!!!!');
if Tank[1].Visible=false then showmessage('Игра окончена!!!!');
//generirovaniye karti
randomize;
for i:=0 to 9 do
for j:=0 to 9 do
begin
map[i,j]:=random(100)+1;
if map[i,j]<=50 then map[i,j]:=1;
if (map[i,j]>50) and (map[i,j]<=80) then map[i,j]:=2;
if (map[i,j]>80) and (map[i,j]<=100) then map[i,j]:=3;
end;
//rasstanovka flagov i tankov
map[9,0]:=1;
map[9,1]:=1;
map[8,0]:=1;
map[0,9]:=1;
map[0,8]:=1;
map[trunc(Tank[1].x/60),trunc(Tank[1].y/60)]:=1;

Tank[1].Speed:=12;
Tank[1].x:=60;
Tank[1].y:=540;
Tank[1].Povorot:=1;
Tank[1].Go:=false;
Tank[1].Anim:=1;
Tank[1].Fight:=false;
Tank[1].Zaderhka_Vistrela:=0;
Tank[1].Max_vistrel:=10;
Tank[1].Vistrelil:=false;
Tank[1].Visible:=true;

Tank[2].Speed:=7;
Tank[2].x:=480;
Tank[2].y:=0;
Tank[2].Povorot:=3;
Tank[2].Go:=false;
Tank[2].Anim:=1;
Tank[2].Fight:=false;
Tank[2].Zaderhka_Vistrela:=0;
Tank[2].Max_vistrel:=10;
Tank[2].Vistrelil:=false;
Tank[2].Visible:=true;

Tank[3].Speed:=20;
Tank[3].x:=540;
Tank[3].y:=60;
Tank[3].Povorot:=3;
Tank[3].Go:=false;
Tank[3].Anim:=1;
Tank[3].Fight:=false;
Tank[3].Zaderhka_Vistrela:=0;
Tank[3].Max_vistrel:=5;
Tank[3].Vistrelil:=false;
Tank[3].Visible:=true;

timer1.Enabled:=true;
Во второй части урока я не так сильно кропотливо обьсянл все моменты и прошу за это меня извинить – это связано с нехваткой времени. Я паралельно занимаюсь еще другими сайтами плюс учусь в университете и пишу магистерскую работу по написанию игры, о которой говорится на главной странице сайта. На этом все – до свидания!
Категория: Уроки по созданию игр | Добавил: Armageddets (04.11.2012)
Просмотров: 1346 | Теги: игровые алгоритмы, программируем танк, игра танчики, создание игр на делфи, танк | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Где Вам удобнее оставлять коментарии и задавать вопроссы?
Всего ответов: 24
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

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