Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.03.11 09:30. Заголовок: Смена спрайта
Подскажите пожалуйста, как можно реализовать: идет персонаж, нажимаешь кнопку он должен выстрелить (при этом не должен отобразиться 1 рисунок спрайта, а все если он состоит из 5 рисунков) и как реализовать выстрел пули. С движением персонажа (объекта) все понятно, а вот с остальным?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 11.03.11 10:21. Заголовок: Забыл уточнить :), к..
Забыл уточнить :), код программы необязателен, мне нужен алгоритм, спасибо!
|
|
|
|
| |
Пост N: 379
Зарегистрирован: 04.03.09
Откуда: Россия, Ростов-на-Дону
|
|
Отправлено: 11.03.11 17:37. Заголовок: Ну, алгоритм таков. ..
Ну, алгоритм таков. Допустим у тебя 2 спрайта: 1 - персонаж стоит, 2 - анимация выстрела. Когда игрок нажимает кнопку меняем спрайт на 2, а когда заканчивается его анимация меняем обратно на 1. А вот алгоритм выстрела я описать не смогу, только код) Только небольшое уточнение сперва - это Game Maker?
|
|
|
|
Отправлено: 12.03.11 00:26. Заголовок: D(e)N пишет: А вот ..
D(e)N пишет: цитата: | А вот алгоритм выстрела я описать не смог |
| Да что там описывать то? ;) В событии выстрела создаёшь объект пульки в координатах оружия. Если платформер - задаёшь направление и скорость по x-координате, если TDS - посылаешь патрон в сторону мышки или угла поворота персонажа. :)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 12.03.11 15:29. Заголовок: Всем спасибо, разобр..
Всем спасибо, разобрался! :)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 12.03.11 16:24. Заголовок: Здесь я все же хочу ..
Здесь я все же хочу остановиться подробнее: D(e)N пишет: цитата: | 1 - персонаж стоит, 2 - анимация выстрела. Когда игрок нажимает кнопку меняем спрайт на 2, а когда заканчивается его анимация меняем обратно на 1. |
|
. У меня на клавишу Space (событие Keyboard, а не key press и не key release) идет замена спрайта, но проблема в том, что отображается один кадр из спрайта если я нажму быстро.
|
|
|
|
| |
Пост N: 463
Зарегистрирован: 09.07.07
Откуда: Россия, Подмосковье
|
|
Отправлено: 12.03.11 18:34. Заголовок: Volotar Может попро..
Volotar Может попробовать сделать максимальный интервал между выстрелами? Как раз пока анимация не закончится. Я уже гамак давно не использовал, но что если например сделать условие: Проверка при выстреле: Если у персонажа не спрайт выстрела, то... (а там уже типа поменять спрайт на спрайт выстрела, создать пулю или как там у тебя)
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.03.11 09:58. Заголовок: Вопрос с выстрелом к..
Вопрос с выстрелом как бы решен. Помогите еще в одном вопросе. Спрайт состоит из нескольких рисунков, как удалить спрайт или объект после отображения последнего изображения?
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 14.03.11 15:53. Заголовок: igrodel пишет: Я уж..
igrodel пишет: цитата: | Я уже гамак давно не использовал, |
| Какую программу Вы используете и пишите вообще игры ?
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2584
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 14.03.11 16:13. Заголовок: Volotar пишет: Спра..
Volotar пишет: цитата: | Спрайт состоит из нескольких рисунков, как удалить спрайт или объект после отображения последнего изображения? |
| если гамак то: 1 - в евентах объекта есть событие завершение анимации. перетащите туда кнопку дестрой. 2 - if(sprite_index == image_number)instance_destroy(); в степе объекта
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 15.03.11 13:32. Заголовок: Ev-genius прямо в 10..
Ev-genius прямо в 10! Спасибо! На счет события "завершение анимации" незаметил. Реализовывал в объэкте событие "шаг" с кодом : if my_object.sprite_index == 12 { instance_destroy(); } Так работало при объете "Взрыв", а вот объет "враг" должен был замениться на умирающего и удалиться потом, а это фрагмент кода не срабатывал (либо 2 раза повторял анимацию умирания врага, либо вообще моментально исчезал, конечно дописывался и изменялся код, но конечного результата не мог добиться).
|
|
|
|