Здравствуйте, у меня такой вопрос: хочу сделать в игре супер-удары, допустим есть цели для атаки противника: голова, корпус, ноги. Голова число 2, корпус число 5, ноги число 8. Чтобы использовать супер-удар, нужно нажать определенную комбинацию из чисел тойсть (голова=2, корпус=5, ноги=8). Например: если комбинация чисел будет 22 (голова,голова) то выполниться допустим супер-удар 1 уровня, если 258 выполнится супер-удар 2 уровня. Как можно сделать так, что при создании персонажа, автоматически создавались эти супер-удары по случайности. Допустим я создаю игрока, у него будут одни супер-удары, а захочу создать заново или начать новую игру, то по случайности комбинируются другие числа и в том числе будут другие комбинации для супер-удара 1 уровня. Но проблема в том, что если супер-удар уровня 1 будет 22 (голова,голова), то следующие супер-удары высшего уровня не начинались на 22 (голова, голова), иначе получится опять первый супер-удар! ... И так далее. Помогите если сможете!)
Ну, чтобы сделать комбинации ударов нужно запоминать не только последнюю нажатую клавишу, но и предыдущую. Для этого создадим 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;
А по поводу супер ударов более высокого уровня или просто других ударов, то там просто уже сам расширяешь массивы целей ударов или самих ударов (какие клавиши кликать) и добавлять проверки на нажатие нужных комбинаций клавиш как мы это уже сделали.