Цитата (Randall)
В create: xprev=x;yprev=y. Это бэкап предыдущих координат объекта. В степе сравниваем текущий x и y с xprev yprev и меняем спрайт в зависимости от характера изменений. Для движения по правым диагоналям например: if x>xprev ... По левым if x<xprev ... На месте if x=xprev and y=ypev ... Для четко вверх или вниз нужен некоторый допуск, например в пиксель (так как четко провести мышью вверх или вниз вряд ли получится): if abs(x-xprev)<=1 ... и так далее. После всех проверок, в самом конце степа освежаем xprev=x;yprev=y Вот и всё.
Спасибо большое! Обязательно попробую сделать!Добавлено (28.03.2013, 17:59)
---------------------------------------------
Но вот вопрос.
я пишу так:
if x>xprev {sprite_index=r};
if x<xprev {sprite_index=l};
if x=xprev and y=yprev {sprite_index=rl};
xprev=x;yprev=y
но ничего не пороисходит, спрайт rl не меняется на другой r или l.
может я с самого начала что-то не так делал, когда в create создал событие Set mouse to rl ?? А как тогда быть?
Добавлено (28.03.2013, 19:22)
---------------------------------------------
Все, теперь получилось, когда заменил событие Set mouse to кодом
Cursor.x=mouse_x
Cursor.y=mouse_y
после этого анимация стала действовать!
Огромное спасибо за совет!
Добавлено (28.03.2013, 21:54)
---------------------------------------------
А теперь еще один вопрос... Надеюсь последний по этой теме
Как сделать так, чтобы смена скриптов, которую я сделал до этого, происходила с некоторой задержкой, например в одну секунду. Просто инчае при малых перемещениях курсора анимация начинает часто переключаться, выглядит это как дергание. Когда мышкой делаю большие перемещения, то все нормально без дерганий. А может есть какие-то еще надежные способы избежать дерганий анимации при малых перемещениях? Пробовал что-то сам фантазировать, но ничего не вышло
Если кто опять поможет буду очень благодарен!