|
|
//这是原代码,问题在最后
BOOL baiscobj: isplayScene()
{
float speed=0.2f;
if (KEY_DOWN(VK_SHIFT)) speed = speed * 4;
if (KEY_DOWN(VK_LEFT)) g_Angle -= speed * 2;
if (KEY_DOWN(VK_RIGHT)) g_Angle += speed * 2;
rad_xz = float (3.13149 * g_Angle/180.0f);
if (KEY_DOWN(33)) g_elev += 0.2f;
if (KEY_DOWN(34)) g_elev -= 0.2f;
if (g_elev < -100) g_elev = -100;
if (g_elev > 100) g_elev = 100;
if (KEY_DOWN(VK_UP))
{ g_eye[2] += sin(rad_xz) * speed;
g_eye[0] += cos(rad_xz) * speed;
}
if (KEY_DOWN(VK_DOWN))
{ g_eye[2] -= sin(rad_xz) * speed;
g_eye[0] -= cos(rad_xz) * speed;
}
if (g_eye[0]<-(MAP*2-20)) g_eye[0]= -(MAP*2-20);
if (g_eye[0]> (MAP*2-20)) g_eye[0]= (MAP*2-20);
if (g_eye[2]<-(MAP*2-20)) g_eye[2]= -(MAP*2-20);
if (g_eye[2]> (MAP*2-20)) g_eye[2]= (MAP*2-20);
g_eye[1] =1.8;
g_look[0] = float(g_eye[0] + 100*cos(rad_xz));
g_look[2] = float(g_eye[2] + 100*sin(rad_xz));
g_look[1] = g_eye[1];
gluLookAt(g_eye[0],g_eye[1],g_eye[2],g_look[0],g_look[1]+g_elev,g_look[2],0.0,1.0,0.0);
return TRUE;
}
GLvoid baiscobj::DrawGround()
{
glPushAttrib(GL_CURRENT_BIT);
glPushMatrix();
glColor3f(0.5f, 0.7f, 1.0f);
glTranslatef(0,0,0);
int size0=(int)(MAP*2);
glBegin(GL_LINES);
for (int x = -size0; x < size0;x+=4)
{glVertex3i(x, 0, -size0); glVertex3i(x, 0, size0);}
for (int z = -size0; z < size0;z+=4)
{glVertex3i(-size0, 0, z); glVertex3i( size0, 0, z);}
glEnd();
glPopMatrix();
glDisable(GL_BLEND);
glPopAttrib();
}
_____________________________________________________________
1,KEY_DOWN(33)//这个检测那个键?
if (KEY_DOWN(33)) g_elev += 0.2f;
if (KEY_DOWN(34)) g_elev -= 0.2f;
if (g_elev < -100) g_elev = -100;
if (g_elev > 100) g_elev = 100;
if (KEY_DOWN(VK_UP))
{ g_eye[2] += sin(rad_xz) * speed;
g_eye[0] += cos(rad_xz) * speed;
}
if (KEY_DOWN(VK_DOWN))
{ g_eye[2] -= sin(rad_xz) * speed;
g_eye[0] -= cos(rad_xz) * speed;
}
if (g_eye[0]<-(MAP*2-20)) g_eye[0]= -(MAP*2-20);
if (g_eye[0]> (MAP*2-20)) g_eye[0]= (MAP*2-20);
if (g_eye[2]<-(MAP*2-20)) g_eye[2]= -(MAP*2-20);
if (g_eye[2]> (MAP*2-20)) g_eye[2]= (MAP*2-20);
______________________________________________________
2,这一段的代码不用解释,想知道这样写的数学原理,,,,,, |
|