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