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

Четверг, 09.01.2025, 06:38
Приветствую Вас Гость

Супер-удары - Форум

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Супер-удары
ДивиджейДата: Суббота, 12.04.2014, 19:59 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 2
Статус: Offline
Здравствуйте, у меня такой вопрос: хочу сделать в игре супер-удары, допустим есть цели для атаки противника: голова, корпус, ноги. Голова число 2, корпус число 5, ноги число 8.
Чтобы использовать супер-удар, нужно нажать определенную комбинацию из чисел тойсть (голова=2, корпус=5, ноги=8).
Например: если комбинация чисел будет 22 (голова,голова) то выполниться допустим супер-удар 1 уровня, если 258 выполнится супер-удар 2 уровня. Как можно сделать так, что при создании персонажа, автоматически создавались эти супер-удары по случайности. Допустим я создаю игрока, у него будут одни супер-удары, а захочу создать заново или начать новую игру, то по случайности комбинируются другие числа и в том числе будут другие комбинации для супер-удара 1 уровня. Но проблема в том, что если супер-удар уровня 1 будет 22 (голова,голова), то  следующие супер-удары высшего уровня не начинались на 22 (голова, голова), иначе получится опять первый супер-удар! ... И так далее. Помогите если сможете!)
 
ArmageddetsДата: Суббота, 12.04.2014, 22:51 | Сообщение # 2
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Ну, чтобы сделать комбинации
ударов нужно запоминать не только последнюю нажатую клавишу, но и предыдущую.
Для этого создадим 2 переменные:

Var
Posled,Prev:char; (можно String)

В одном из событий типа OnkeyDown, OnKeyPress,в котором мы обрабатываем нажатия клавишь прописываем:

Prev:=Posled;
Posled:=key;

Но учти, что изначально при запуске игры нужно указать какие-то начальные значения для этих переменных, чтобы не выбивало ошибки…

Далее в этом же месте делаем проверки на нажатую клавишу и нажатую предыдущую клавишу:

If (Posled=’2’) and (Prev=’2’) then
… super udar 1

If (Posled=’5’) and (Prev=’2’) then
… super udar 3

Что-то в этом роде. Теперь по поводу как случайно генерировать супер удары. Опять же делаешь переменные, которые будут отвечать за удары:

Var
Udari:array[1..3] of Char;//3 vida udarov
Tseli:array[1..3] of Integer; //vidi tseley
I,n:integer;

Заполняем виды целей:

Tseli[1]:=2;
Tseli[2]:=5;
Tseli[3]:=8;

Затем случайно генерируем клавиши по ударам:

I:=1;
Randomize;
While (i<=3) do
Begin
N:= Random(3)+1;
If Udari[n]=0then
Begin
Udari[n]:=tseli;
I:=i+1;
End;
End;

А по поводу супер ударов более высокого уровня или просто
других ударов, то там просто уже сам расширяешь массивы целей ударов или самих
ударов (какие клавиши кликать) и добавлять проверки на нажатие нужных
комбинаций клавиш как мы это уже сделали.
 
ДивиджейДата: Суббота, 12.04.2014, 23:51 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 22
Репутация: 2
Статус: Offline
О, огромное спасибо, а я целый день голову ломал. Будем пробовать)

Добавлено (12.04.2014, 23:51)
---------------------------------------------
О, огромное спасибо, а я целый день голову ломал. Будем пробовать)

 
ArmageddetsДата: Воскресенье, 13.04.2014, 11:43 | Сообщение # 4
Лейтенант
Группа: Администраторы
Сообщений: 68
Репутация: 4
Статус: Offline
Не за что. Пробуй)
 
  • Страница 1 из 1
  • 1
Поиск:

Наш опрос
Оцените мой сайт
Всего ответов: 103
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика