我试图让一个角色做一个振荡动作。也就是说,角色首先会旋转到某个角度,比如 60 度,然后慢慢回到直立位置,然后向相反方向旋转小于 60 度的角度,比如 55 度,然后再重复一遍,直到旋转角度达到零,字符停止。目前我正在尝试通过声明全局变量并使用 if 块检查它们并在这些块中将它们的值更改 1 度来实现这一点,这样每次计时器调用paintgl 时,它都会将角度减小 1 度并绘制对象从而使其成为看起来它在慢慢旋转。我无法阻止角色。这是我处理它的代码的一部分;
glRotatef(j,0,1,0);
glRotatef(k,0,1,0);
if(flag)
{
j = j + 2;
if (j == 0)
{
k = 60;
flag = !flag;
}
}
if(!flag)
{
k = k - 2;
if(k == 0)
{
j = -60;
flag = !flag;
}
}
gluCylinder(player, 1,1,8,100,100);
这里圆柱体是我的角色,if 块正在增加/减少全局变量 j 和 k。j 初始化为 -60, k 初始化为 60。
我怎样才能让这件事发挥作用,我怎样才能阻止它。