Форум » Вопрос-Ответ » Смена спрайта » Ответить

Смена спрайта

Volotar: Подскажите пожалуйста, как можно реализовать: идет персонаж, нажимаешь кнопку он должен выстрелить (при этом не должен отобразиться 1 рисунок спрайта, а все если он состоит из 5 рисунков) и как реализовать выстрел пули. С движением персонажа (объекта) все понятно, а вот с остальным?

Ответов - 10

Volotar: Забыл уточнить :), код программы необязателен, мне нужен алгоритм, спасибо!

D(e)N: Ну, алгоритм таков. Допустим у тебя 2 спрайта: 1 - персонаж стоит, 2 - анимация выстрела. Когда игрок нажимает кнопку меняем спрайт на 2, а когда заканчивается его анимация меняем обратно на 1. А вот алгоритм выстрела я описать не смогу, только код) Только небольшое уточнение сперва - это Game Maker?

ALIEN XIII: D(e)N пишет: А вот алгоритм выстрела я описать не смог Да что там описывать то? ;) В событии выстрела создаёшь объект пульки в координатах оружия. Если платформер - задаёшь направление и скорость по x-координате, если TDS - посылаешь патрон в сторону мышки или угла поворота персонажа. :)


Volotar: Всем спасибо, разобрался! :)

Volotar: Здесь я все же хочу остановиться подробнее: D(e)N пишет: 1 - персонаж стоит, 2 - анимация выстрела. Когда игрок нажимает кнопку меняем спрайт на 2, а когда заканчивается его анимация меняем обратно на 1. . У меня на клавишу Space (событие Keyboard, а не key press и не key release) идет замена спрайта, но проблема в том, что отображается один кадр из спрайта если я нажму быстро.

igrodel: Volotar Может попробовать сделать максимальный интервал между выстрелами? Как раз пока анимация не закончится. Я уже гамак давно не использовал, но что если например сделать условие: Проверка при выстреле: Если у персонажа не спрайт выстрела, то... (а там уже типа поменять спрайт на спрайт выстрела, создать пулю или как там у тебя)

Volotar: Вопрос с выстрелом как бы решен. Помогите еще в одном вопросе. Спрайт состоит из нескольких рисунков, как удалить спрайт или объект после отображения последнего изображения?

Volotar: igrodel пишет: Я уже гамак давно не использовал, Какую программу Вы используете и пишите вообще игры ?

Ev-genius: Volotar пишет: Спрайт состоит из нескольких рисунков, как удалить спрайт или объект после отображения последнего изображения? если гамак то: 1 - в евентах объекта есть событие завершение анимации. перетащите туда кнопку дестрой. 2 - if(sprite_index == image_number)instance_destroy(); в степе объекта

Volotar: Ev-genius прямо в 10! Спасибо! На счет события "завершение анимации" незаметил. Реализовывал в объэкте событие "шаг" с кодом : if my_object.sprite_index == 12 { instance_destroy(); } Так работало при объете "Взрыв", а вот объет "враг" должен был замениться на умирающего и удалиться потом, а это фрагмент кода не срабатывал (либо 2 раза повторял анимацию умирания врага, либо вообще моментально исчезал, конечно дописывался и изменялся код, но конечного результата не мог добиться).



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