В общем так:
Ивент 1
Переменная 0001 = Х по горизонтали
Переменная 0002 = У по горизонтали
Ивент 2
Переменная 0003 = Х по горизонтали
Переменная 0004 = У по горизонтали
У ивентов разница как раз в "шагах" - если стоят рядом, разница 1 шаг (клетка) - по горизонтали или вертикали.
Если наискосок - 2 клетки, потому что разнятся обе координаты.
Допустим, ты выгородил четверть карты под монстрятник. Пусть это вторая четверть ( на 14 часов ). А карта у тебя 40х40. Монстрятник - 20х20. ( засыпаю, потому мудрено пишу )
т.е. от 20 до 40 по горизонтали и от 0 до 20 по вертикали.
Теперь: если у тебя обе координаты чара/ивента попадают в этот раздел карты, то быть бою. Если нет или только одна - не быть.
Например: координаты 15х35 - боя нет, 35х35 - боя нет, 25х15 - бой.
Записывается так:
если переменная Х больше/равна 20, а переменная У меньше/равна 20, то условие боя выполняется.
Да! Как шаги считать...
Очень просто: суммируешь разницу от сравнения обоих координат ( начала движения и остановки )( в абсолютной величине ) и получаешь число пройденных шагов.
Ошибка... Это работает только если идти не поворачивая назад...
Тогда придется считать шаги от нажатия кнопок стрелок...
Мдя... труднова-то будет объяснить.
Вот, что я тебе советую! Плюнь на количество пройденных шагов, а определяй лишь положение героя ( параллельный процесс ). Как только герой вошел в зону боя, включай таймер и пусть герою через ХХ сек. будет плохо. А количество ( ХХ ) секунд можно определять каждый раз рандомно. Скажем - от 30 сек. до минуты. Человечно...
Соответственно, если вышел из зоны, таймер отключается ( или останавливается, что чуть посложнее, но большой разницы не будет ).
Социальные закладки