ソース抜粋
void display(void) {
if (mouse_state == 0) {
glPushMatrix();
glRotatef(6.fj, 0.f, 0.f, 1.f); //マウスクリックする毎にz軸を中心に6度回転
drawCube();
glPopMatrix();
}
else if (mouse_state == 1) {
glPushMatrix();
glRotatef(6.fk, 0.f, 0.f, 1.f); //マウスクリックする毎にz軸を中心に-6度回転
drawSphere();
glPopMatrix();
}
glFlush();
drawSphere();
glFinish();
}
//マウスクリックでの処理
void mouse(int button, int state, int x, int y) {
if (button == GLUT_LEFT_BUTTON) {
j++;
printf("(%d,%d)\t LEFT was clicked count:%d\n", x, y, j);
mouse_state = 0;
}
else if (button == GLUT_RIGHT_BUTTON) {
k++;
printf("(%d,%d)\tRIGHT was clicked count:%d\n", x, y,k);
mouse_state = 1;
}
drawCube();
display();
}
このようなプログラミングを実行したところ、マウスを1回クリックするたびに2回ずつカウントされて、2回ずつ図形が回転してしまいます。どうすれば1回ずつ回転するようになりますか?
if文内を(button == GLUT_LEFT_BUTTON&&button == GLUT_DOWN)などにしてみましたが、結果は同じでした。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/14 09:55
2018/05/14 10:08
2018/05/14 10:25