C++ 我怎样才能让敌人移动?

C++ 我怎样才能让敌人移动?,c++,opengl,programming-languages,C++,Opengl,Programming Languages,您好,我正在尝试让敌人左右移动,就像他们在前后滑动一样。我知道这可以通过以下代码完成: slide += slide_incr; if(abs(slide)>30) slide_incr = -slide_incr; 然而,这对我来说是没有用的,因为我需要设置一个布尔值,这样我就可以在敌人向右或向左移动的帧之间循环 我尝试了以下代码,但没有成功: if(abs(eSlide)<=0) { eSlide += eS

您好,我正在尝试让敌人左右移动,就像他们在前后滑动一样。我知道这可以通过以下代码完成:

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;   

}
if(防抱死制动系统(eSlide)30)
{
eSlide_incr=-eSlide_incr;
}
有没有关于如何实施的想法?
感谢您在向前或向后滑动时想要保持滞后状态。在边界检查时,您还混淆了如何使用
abs()
函数。尝试以下几点:

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

对我来说,第一件突出的事情是块的内容:

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

(注意:对于值为0的情况,这仍将使用左侧动画集)

在了解
abs(eSlide)时,您可能会得到一些更好的答案
bool isSlidingRight = eSlide_incr > 0;