Форум » Вопрос-Ответ » Событие столкновения » Ответить

Событие столкновения

Volotar: Подскажите пожалуйста, в чем "бока"? Пишу Game Maker, есть персонаж, есть враги. У каждого описаны события. В процессе написания комнат они изменялись, допонялись разными элементами + расположение и количество врагов (некоторые появляются лишь при столкновении с невидимым блоком, эффект внезапности). Почему герой в одной комнате имеет события столкновения с врагом слева, с другим польностью, а с другими нет вообще (враг - один объет). Героя ставлю на уровне в последним. Спасибо!

Ответов - 6

Ev-genius: если честно понял только второе и последнее предложения Volotar пишет: Пишу Game Maker, есть персонаж, есть враги. ......чтото сумбурно непонятное...... Спасибо!

Volotar: 2 Персонажа они же 2 объекта: 1 - герой, 2 - враг. Описаны события у героя на столкновение с врагом. При составлении комнат (уровней) добавлял и изменял расположение врагов (один объект, но несколько). Но при столкновении "героя" с "врагом" происходят "бока", тоесть, с одним врагом есть событие столкновения и его результат (герой теряет здоровье или умирает), с другим врагом (событие столкновения происходит при одной позиции, только слева), с третим нет события столкновения (герой ходит вокруг врага и даже его проходит, без ущерба для себя => живее всех живых). :(

Ev-genius: выкладывайте пример, чтобы смотреть на конкретном коде конкретный глюк


Volotar: Ev-genius пишет: выкладывайте пример, http://narod.ru/disk/8609027001/RPG.gmk.html Прийму все пожелания, советы и критику ведь это 5 моя игра :)

Ev-genius: если у игрока в событие столкновения с врагом под вашим скриптом из кучи усорвий положить второй скрипт с текстом типа show_message(11); то увидите что событие столкновения срабатывают четко как часы. значит проблема в вашем скрипте вычета здоровья смотрите какое условие несрабатывает и проверяйте выражения. У меня нет гамака8, только 7 имеется) поэтому я смотрел игрушку через тимвьювер на другом компе. поэтому по игрушке ничего сказать не могу, инет подтормаживал) а по коду бегло скажу: постарайтесь избавиться от 4 копий одного условия. если вам нужно отнимать хп только тогда когда враг атакует, сделайте так чтобы хп игроку отнимал скрипт врага. Пускай враг решает сколько отнимать игроку, а не игрок сколько вычитать у себя. если вам нужно чтобы игрок отлетал на 5 пикселей напишите чтото типа: o_pl.x += sign(o_pl.x - o_enemy.x) * 5; o_pl.y += sign(o_pl.y - o_enemy.y) * 5; вместо того чтобы смотреть какой спрайт у врага и какой у игрока, и писать 8 условий, напишите 2 строчки и игрок сам будет отскакивать в нужнуюсторону

Volotar: Спасибо, за советы! Учту.



полная версия страницы