使用和过度使用静态变量
Use and over use of static variables
是否建议在我喜欢的地方使用静态变量?
因为我现在更倾向于使用它。使用静态变量是一种不好的做法,还是会很快填满内存?
目前正在用c++做小游戏。因此,为了保持一些状态,如跳跃位置和动画时间,我必须在函数中使用静态变量,并且该函数将在循环中多次调用。所以静态变量将完成这项工作。有没有面向对象的模式来解决这个问题?
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 作为 "Object"
的一部分实施可能会更好
在函数中保持状态几乎不是一个好主意。
是否建议在我喜欢的地方使用静态变量?
因为我现在更倾向于使用它。使用静态变量是一种不好的做法,还是会很快填满内存?
目前正在用c++做小游戏。因此,为了保持一些状态,如跳跃位置和动画时间,我必须在函数中使用静态变量,并且该函数将在循环中多次调用。所以静态变量将完成这项工作。有没有面向对象的模式来解决这个问题?
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 作为 "Object"
的一部分实施可能会更好在函数中保持状态几乎不是一个好主意。