OpenGL GLUT茶壶与相机碰撞

时间:2018-04-12 09:33:33

标签: java eclipse opengl aabb

我正在制作一个简单的3D游戏,我正在迷宫中移动。现在我想实施收集在该地区随机扰乱的茶壶。随机抽取的茶壶工作得很好。现在我需要进行碰撞。为此,我想使用AABB算法。

以下是我如何初始化茶壶的坐标,以便它们在不是墙壁的迷宫中受到干扰:

 for(int i=0; i<5;i++) {

            x = random.nextInt(21);
            y = random.nextInt(21);

            while(wall[x][y]) {

                x = random.nextInt(21);
                y = random.nextInt(21);
            }

            if(!wall[x][y]) {
                teapot[x][y] = true;
            }   
        }

以下是我渲染茶壶的方法:

gl.glLoadIdentity();
        //render konviček
        for(int i=0;i<21;i++) {
            for(int j=0; j<21; j++) {
                if(labyrinth.getDonut()[i][j]) {
                    gl.glTranslatef((float) i, 0f, (float) j);
                    wallTexture.disable(gl);
                    gl.glColor3f(1.0f, 0.0f, 0.0f);
                    glut.glutSolidTeapot(0.2);
                    gl.glTranslatef((float) -i, 0f, (float) -j);
                }
            }
        }

我的问题是,如何简单地实现AABB算法。我知道我应该在那些茶壶周围画一个立方体,但是我无法弄清楚如何编码它。

我已经准备好了checkCollision(double X, double Z);方法,所以我真的需要在茶壶周围绘制框并获取其坐标。

0 个答案:

没有答案