Как я могу заставить врагов двигаться? - PullRequest
0 голосов
/ 28 марта 2011

Здравствуйте, я пытаюсь заставить врагов двигаться влево и вправо, как будто они скользят назад и вперед. Я знаю, что это можно сделать с помощью следующего кода:

slide += slide_incr;                            
if(abs(slide)>30) slide_incr = -slide_incr; 

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

Я безуспешно попробовал следующий код:

if(abs(eSlide)<=0)
{
      eSlide += eSlide_incr;    
}

if(abs(eSlide)>30) 
{
      eSlide_incr = -eSlide_incr;   

}

Есть идеи, как я могу это реализовать? Спасибо

Ответы [ 2 ]

1 голос
/ 28 марта 2011

Первое, что выделяется для меня, это то, что содержимое блока:

if (abs(eSlid) <= 0) {
    eSlide += eSlide_incr;
}

никогда не будет работать (абсолютное значение всегда будет больше или равно 0)

Что касается вашего логического обращения, это может быть достигнуто с помощью:

bool isSlidingRight = eSlide_incr > 0;

(примечание: при этом все равно будет использоваться левая анимация, установленная для значений 0)

1 голос
/ 28 марта 2011

Вы хотите сохранить состояние гистерезиса, если вы скользите вперед или назад.Вы также путаетесь с тем, как использовать функцию abs() при проверке границ.Попробуйте что-нибудь вроде:

eSlide += eSlide_incr;
if (abs(eSlide) >= 30) {
    eSlide_incr = -eSlide_incr;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...