我正在制作一个简单的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);
方法,所以我真的需要在茶壶周围绘制框并获取其坐标。