キャラクターに振動動作をさせようとしています。つまり、キャラクターは特定の角度 (たとえば 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 に初期化されます。
どうすればこれを機能させることができ、どうすれば停止できますか。