Показать сообщение отдельно
  #82  
Старый 05.06.2013, 21:30
Аватар для Царь
Царь Царь вне форума
Новичок
 
Регистрация: 13.05.2013
Сообщения: 52
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Похоже уже давно надо эту тему переименовать в "Записки начинающего Игродела".
Хех ) Возможно ) Сдачу курсовой на счастье продлили еще где-то на 2 недели, так что я в какой-то мере расслабился. Однако все еще надо решить главную проблему - таблица рекордов, но вроде как еще живет идея, надо только реализовать попробовать )
К тому же я уже люблю свою игру! Так что даже если курсовая закончится я хочу улучшить её еще как можно больше, ибо планов хватает )
Цитата:
Без полного исходного кода трудновато подсказывать.
Я могу кинуть исходник (похвастаться своими достижениями), но уверен, что разбираться в моих каракулях Вам будет не особо желанно ) Так что я постараюсь пояснить что же я вписал.
Итак.
Юнит Монстра
.....
тип
Монстр положение = (Жив, ранен, атака);
Монстр = класс (ТИмэйджСпрайт)
откататаки: реал;
.....
private
.....
public
.....

Где точки, это то, что по-моему не относится к откату атаки и положению атаки.
Далее, я в процедуре DoMove монстра пишу:
если монстр_слева_от_героя или монстр_справа_от_героя то
Положение:=Атака;

если
Положение=Атака то
начнем
откататаки:=35;
вместе с TКоготь.Создать делать
если герой_слева то появление когтя с поправкой влево;
если герой_слева то появление когтя с поправкой вправо;
конец;

ТКоготь это невидимый спрайт атаки. До другого я просто пока не додумался. Если есть альтернативный вариант, то я с удовольствием приму знания )
Далее мне нужно сделать три записи.
Первая, это в процедуре Таймер, в основном юните. Там я записываю постоянное снижение откататаки на единицу. Попробовал вписывать уменьшение откататаки в процедуре DoMove монстра, но вышло так, что откат начинается только тогда, когда монстр двигается =\
Вторая, - записать в юните Коготь, в процедуре DoMove, что если откататаки монстра меньше либо равно числу 15, то коготь умирает/исчезает.
Третья, - в процедуре коллизии Героя, что если он сталкивается со спрайтом Коготь и откат когтя равно 15, то она получает урон.
В итоге должно получится, что при атаке монстр создает откататаки, воспроизводит анимацию атаки, воспроизводит спрайт коготь и через несколько мгновений коготь должен исчезнуть в не зависимости от того, попал он в героя или нет, - завершение атаки. Далее остается 20 единиц отката не позволяющих монстру атаковать повторно.
Ранее я делал откататака в варе основного юнита, но работало оно как бы глобально и поэтому если один монстр атаковал, то стопились все.
Вот, собственно и вся проблема, да
__________________
Сталкиваться с препятствиями полезно. Только отвечая на вызовы судьбы, мы узнаем пределы наших возможностей.
Ответить с цитированием