模拟走动效果;
1、相应VK_UP按键消息,并作出如下处理
if (keys[VK_UP])
{
xpos -= (float)sin(heading*piover180) * 0.05f;
zpos -= (float)cos(heading*piover180) * 0.05f;
if (walkbiasangle >= 359.0f)
{
walkbiasangle = 0.0f;
}
else
{
walkbiasangle+= 10;
}
walkbias = (float)sin(walkbiasangle * piover180)/20.0f;
}
2、在Draw函数中画图之前作如下处理
GLfloat xtrans = -xpos;
GLfloat ztrans = -zpos;
GLfloat ytrans = -walkbias-0.25f;
glRotatef(lookupdown,1.0f,0.0f,0.0f);
注:各变量的定义如下:
const float piover180 = 0.0174532925f;
float heading;
float xpos;
float zpos;
GLfloat yrot; // Y Rotation
GLfloat walkbias = 0;
GLfloat walkbiasangle = 0;
本文介绍了一种基于按键响应的3D角色行走效果实现方法。通过解析键盘输入(如向上键),利用三角函数计算角色位置变化,实现平滑移动。同时引入了偏移角度来增加行走的真实感。
5161

被折叠的 条评论
为什么被折叠?



