C++ 静态变量的使用和过度使用

C++ 静态变量的使用和过度使用,c++,game-loop,C++,Game Loop,是否建议在我熟悉的地方使用静态变量 因为我现在更倾向于使用它。是否有任何事情像使用静态变量是一种不好的做法,或者它会很快填满内存 目前我正在用C++做一些小游戏。所以为了保持一些状态,比如跳跃位置和动画时间,我必须在一个函数中使用静态变量,这个函数在循环中会被多次调用。所以静态变量将完成这项工作。有什么oo模式可以克服这个问题吗 void jumpit(){ static int jump ; if( !jump && pressed) jum

是否建议在我熟悉的地方使用静态变量

因为我现在更倾向于使用它。是否有任何事情像使用静态变量是一种不好的做法,或者它会很快填满内存

目前我正在用C++做一些小游戏。所以为了保持一些状态,比如跳跃位置和动画时间,我必须在一个函数中使用静态变量,这个函数在循环中会被多次调用。所以静态变量将完成这项工作。有什么oo模式可以克服这个问题吗

void jumpit(){
    static int jump ;
    if( !jump && pressed)
          jump=1;
    if (jump)
         obj.y++;
} 
在循环中,我将称之为完成任务。我们有没有更好的办法来做同样的事情???

您的“obj”可以跟踪自己的状态

独立式jumpit功能可实现为:

void jumpit(Object& obj, bool pressed)
{
        if( !obj.jump && pressed)
              obj.jump = true;
        if (obj.jump)
             obj.y++;
}
或者最好将jumpit作为“对象”的一部分实现


在函数中保持状态几乎从来都不是一个好主意

很抱歉,代码的格式不好。我正在android应用程序中键入它。使用statics willy nilly非常方便,好吧,直到你把自己画成一个角落。谢谢……我如何成为优秀的游戏开发者……我对游戏引擎不感兴趣,尽管我会考虑使用它……我想从一开始就成为一个优秀的游戏开发者,成为一个优秀的开发者。然后学习游戏行业的最佳实践。如果我对2个或更多对象使用此函数使其跳跃,我将面临问题。我明白了。但这些都是我使用静态变量的类似情况