Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenGL检查屏幕边界_C++_Opengl_Translation - Fatal编程技术网

C++ OpenGL检查屏幕边界

C++ OpenGL检查屏幕边界,c++,opengl,translation,C++,Opengl,Translation,我正在为我的openGL类做一个项目,这个项目应该是模拟溜溜球的,我正在取得进展,但在检查屏幕边界时,我似乎遇到了障碍。我正试图得到它,这样一旦球到达屏幕底部,它就会开始上升,反之亦然,我将非常感谢您的帮助 我在上面声明了三个静态浮动,它们将由函数递增,我试图检查deltay以限制球的移动 下面是我翻译球的函数,球会移动,但会继续移动超过我设定的边界 void moveYoYo() { glClear(GL\u颜色\u缓冲\u位); //上升 如果(标志==1) { 三角洲-=.05; 如果(d

我正在为我的openGL类做一个项目,这个项目应该是模拟溜溜球的,我正在取得进展,但在检查屏幕边界时,我似乎遇到了障碍。我正试图得到它,这样一旦球到达屏幕底部,它就会开始上升,反之亦然,我将非常感谢您的帮助

我在上面声明了三个静态浮动,它们将由函数递增,我试图检查deltay以限制球的移动

下面是我翻译球的函数,球会移动,但会继续移动超过我设定的边界

void moveYoYo() {

glClear(GL\u颜色\u缓冲\u位);
//上升
如果(标志==1)
{
三角洲-=.05;
如果(deltay=.002)
{
flag=1;
}
}
glPushMatrix();
GLTRANSTEF(德尔塔克斯、德尔泰、德尔塔兹);
显示();
glPopMatrix();
glFlush();
glutSwapBuffers();

}

如果你想让球在屏幕底部和顶部之间弹跳,如果你想使用这些奇怪的数字,它改变方向的下限应该是=1.002。无论如何,最好使用更少的随机数,如f.e:

if (flag == 1) {
    // Going down
    deltay -= 0.05f;
    if (deltay == 0)
        flag = 0;
} else if (flag == 0) {
    // Going up
    deltay += 0.05f;
    if (deltay == 1)
        flag = 1;
}

另外,如果中的标志仅用作0或1,为什么不使用布尔值?

谢谢!!!我想出来了,我只是用奇怪的边界来看看我是否能约束住球。我的问题是后来在代码中忘记交换缓冲区!
if (flag == 1) {
    // Going down
    deltay -= 0.05f;
    if (deltay == 0)
        flag = 0;
} else if (flag == 0) {
    // Going up
    deltay += 0.05f;
    if (deltay == 1)
        flag = 1;
}