Пятница, 29 Марта 2024, 05:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Изменение спрайта объекта (при его движении в противоположную сторону)
Изменение спрайта объекта
rampasДата: Четверг, 01 Апреля 2010, 21:50 | Сообщение # 1
частый гость
Сейчас нет на сайте
Друзья, всем доброго времени суток.
Родился новый вопрос - прошу помощи - мучаюсь уже около двух суток.

Есть спрайт шагающего мужчины - полицейского, в gif-расширении, состоящий из трёх картинок.

Проблема возникает тогда, когда я пытаюсь его заставить ходить туда-сюда между двумя невидимыми блоками.

Если действовать по схеме:

Code
if var hspeed smaller than 0
change sprite to ...left
else  
change sprite to ....right

то объект меняет свой спрайт, однако из всей анимации показывается только первая картинка, (т.е. анимации-то и нет как таковой) а сам объект движется, как-то рывками.

Если использовать следующий подход:

Code

check collision
if true change sprite to (transfortm sprite to mirroring)

то анимация работает, однако когда объект реверсирует своё направление - спрайт его не меняется, и он начинает своё движение, как бы это по мягче сказать, попой вперёд.

Прошу помощи. Как сделать так, чтобы объект и спрайт изменял и показывал анимацию? С меня +

ezhickovichДата: Четверг, 01 Апреля 2010, 22:04 | Сообщение # 2
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Честно говоря я с GM работал мало... Совсем мало...
Но в ЯП я шарю...
Пусть для сиго мужчины существует таймер ( или для всех сразу ).
По щелчку которого скрипт будет проверять напрвление движения мужчины и на основании этих данных будет ставить следующий кадр ( если это последний кадр то ставим первый и т.д. ) главное не забудь обнулять счётчик кадра при повороте ( короче переменную которая будет отвечать за анимацию ), в любом случае попробуй! А там уж как полуЦЦА!



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!


Сообщение отредактировал ezhickovich - Четверг, 01 Апреля 2010, 22:05
rampasДата: Четверг, 01 Апреля 2010, 22:42 | Сообщение # 3
частый гость
Сейчас нет на сайте
За совет спасибо, смысл понятен, но с моими знаниями по ГМ не ясно как это осуществить....
ScorpioДата: Четверг, 01 Апреля 2010, 23:00 | Сообщение # 4
Любитель геймдева
Сейчас нет на сайте
if hspeed<0 sprite_index=left else sprite_index=right

Добавлено (01.04.2010, 23:00)
---------------------------------------------
кажется, так

rampasДата: Четверг, 01 Апреля 2010, 23:02 | Сообщение # 5
частый гость
Сейчас нет на сайте
Scorpio, в этом случае анимация отсутствует.
Я правильно понимаю, это надо прописывать в событии step/end step ?
ScorpioДата: Четверг, 01 Апреля 2010, 23:03 | Сообщение # 6
Любитель геймдева
Сейчас нет на сайте
Да.
С помощью sprite_index анимация будет.
rampasДата: Четверг, 01 Апреля 2010, 23:16 | Сообщение # 7
частый гость
Сейчас нет на сайте
Scorpio, помогло, когда кодом прописал - Спасибо!!!
Через кнопки не получалось sad
NeZnayuДата: Пятница, 02 Апреля 2010, 11:52 | Сообщение # 8
__танцуй!__
Сейчас нет на сайте
Еще решение:

В draw прописать - draw_sprite_ext(sprite_index,image_index,x,y,1*sign(hspeed+1),1,0,-1,1)
тогда можно использовать толко 1 спрайт полцейского


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Изменение спрайта объекта (при его движении в противоположную сторону)
  • Страница 1 из 1
  • 1
Поиск:

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