我正在使用 OpenGL 在 C++ 中编写程序。
我的游戏有一艘船和敌船。
此刻我可以 move 我的船,因为我对我的键盘很满意。
但我很乐意给我的敌舰一些 move 。例如,它们位于特定坐标 x、y 和 i 中,我希望有一种方法可以在一定时间内将它们重复向右 move 5 步,向左 move 5 步。
有什么想法吗?
最佳答案
您可以使用 void glutTimerFunc(unsigned int msecs,void (*func)(int value), value);
第一个参数是以毫秒为单位的时间,第二个参数是更新敌舰坐标的函数。详细说明可以找here.您可以在下面看到如何使用它。
void update(int value) {
//do your logic to change the cordinate of the enemy ships
glutPostRedisplay();
glutTimerFunc(25, update, 0);
}
这是函数名称更新,您可以在其中放置更改敌舰坐标的逻辑。在它里面你看到了 glutTimerFunc,其中时间是 25 毫秒,它意味着每 25 毫秒调用一次函数更新,敌舰的坐标根据你的逻辑变化。您必须在主函数中调用 glutTimerFunc。
int main(int argc,char** argv)
{
//your program code
glutTimerFunc(25, update, 0);
}
关于c++ - move 对象 (OpenGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15246476/