不要怕使用全局变量,许多视频游戏不让对时间要求严格的函数使用参数,而是使用一些全局变量来传递参数,例如一个函数的代码如下:
void Plot(int x, int y, int color)
{
//plots a pixel on the screen
video_buffer[x + y*MEMORY_PITCH] = color;
}
由于参数要被压栈和出栈,执行这个函数体所需的时间小于调用函数所需的时间,在这种情况下,更好的方法可以是建立一些全局变量,然后在调用前进行赋值以传递参数,如下:
int gx, gy, gz, gcolor; //define some globals
void Plot_G(void)
{
//plot a pixel using globals
video_buffer[gx + gy*MEMORY_PITCH] = gcolor;
} //end Plot_G