2016-11-10 7 views
1

В настоящее время я работаю над анимацией моего плеера, чтобы он вел себя так, как будто он дышит.Sprite в Game Maker не действует так, как я хочу, чтобы он

if(time mod 60==0){ 
    if(image_index==0){ 
    image_index=1; 
    } 
    else{ 
    image_index=0; 
    } 
} 
time++; 

Все это помещается в событие шага и спрайт меняется каждый шаг и даже изменения в индексе 2 и 3, которые я даже не используется в коде.

Итак, если у кого-то есть идеи, почему это работает так, пожалуйста, скажите мне.

ответ

0

Это потому, что спрайт, который вы используете, имеет несколько суб-изображений. GameMaker, естественно, будет перебирать индекс изображения в каждом кадре. Так первое, что вам нужно, чтобы остановить анимацию от работы с

image_speed = 0; 

Вы должны запустить эту линию, когда спрайт только что был изменен, так что в идеале только после того, как «sprite_index» переменная изменена. Если вы не измените его, просто установите для параметра image_speed значение 0 в коде создания.

Если вам интересно, я нашел ответ здесь: How to freeze sprite animation on last frame?