1

我正在制作一个简单的 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);准备好了我的方法,所以我真的只需要在茶壶周围画一个盒子并得到它的坐标。

4

0 回答 0