Среда, 25 Декабря 2024, 22:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Анимация в step event
Freaky_BrainstormДата: Воскресенье, 26 Февраля 2017, 17:41 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем привет.
Возможно, данный вопрос освещался на форуме, но я не нашел.

Есть такой код:
Код
image_angle = point_direction(x, y, mouse_x, mouse_y);

if (mouse_check_button(mb_left)) {
    sprite_index = spr_player_shoot;
    image_speed = 0.5;
} else if (keyboard_check_released(ord('R'))) {
    // Здесь нужно как-то подождать пока проиграется вся анимация,
    // а уже потом запускать логику
    sprite_index = spr_player_reload;
    image_speed = 0.15;
    // логика перезарядки
    if (bullets_pack < oboima) {
        if (bullets_count >= oboima) {
            bullets_count -= oboima - bullets_pack;
            bullets_pack = oboima;
        } else {
            bullets_pack = bullets_count;
            bullets_count = 0;
        }
    }
} else {
    sprite_index = spr_player_idle;
    image_speed = 0.1;
}

if (keyboard_check(ord('W'))) y -= walk_speed;
if (keyboard_check(ord('S'))) y += walk_speed;
if (keyboard_check(ord('A'))) x -= walk_speed;
if (keyboard_check(ord('D'))) x += walk_speed;


Заранее благодарю


Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 17:42
ИнтернетДата: Воскресенье, 26 Февраля 2017, 17:48 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Код
} else if (keyboard_check_released(ord('R'))) {
sprite_index = spr_player_reload
if sprite_index = spr_player_reload{
   image_speed = 0.15;
if image_index='последний кадр в анимации'{
   image_speed = 0
   image_index='начальный кадр анимации'
//Логика
}}}

Можно ещё в конце анимации заменять на другой спрайт и уже тогда запускать "логику"


Сообщение отредактировал Интернет - Воскресенье, 26 Февраля 2017, 17:52
Freaky_BrainstormДата: Воскресенье, 26 Февраля 2017, 17:57 | Сообщение # 3
был не раз
Сейчас нет на сайте
Интернет, не работает. спрайт дергается, пытается проиграть анимацию, но включается idle.
Так получается, что событие завершается раньше, чем проиграется анимация, а нужно что бы анимация вся проигралась, затем просчиталась логика и код пошел дальше


Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 18:07
ИнтернетДата: Воскресенье, 26 Февраля 2017, 18:06 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Проверил вот это работает

Код
    if (keyboard_check_pressed(ord('R'))) {
      sprite_index=spr_player_reload}
      if sprite_index=spr_player_reload{
          if image_index!='последний кадр в анимации'{
      image_speed=0.15}
       else{
      image_speed=0
      sprite_index = spr_player_shoot;
//Логика
}}}


Сообщение отредактировал Интернет - Воскресенье, 26 Февраля 2017, 18:17
Freaky_BrainstormДата: Воскресенье, 26 Февраля 2017, 18:12 | Сообщение # 5
был не раз
Сейчас нет на сайте
Цитата Интернет ()
Проверил вот это работает

Спасибо большое.

Весь код ивента(может кому пригодится):


Сообщение отредактировал Freaky_Brainstorm - Воскресенье, 26 Февраля 2017, 18:58
ИнтернетДата: Воскресенье, 26 Февраля 2017, 18:20 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Эх мне бы такие проблемы )
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг