Advertisement
Kojima0502

mouse_move3

Jan 25th, 2014
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <GLUT/glut.h>
  4. float shiftX,shiftY;
  5. float mouseX,mouseY;
  6. float g_pressed = 0;
  7. void display(void)
  8. {
  9.    
  10.     glClear(GL_COLOR_BUFFER_BIT);
  11.     glTranslatef(shiftX,shiftY,0);
  12.     glColor3d(0.0, 0.0, 0.0);//色
  13.     glBegin(GL_LINE_LOOP);
  14.     glVertex2d(-0.1f, -0.1f);//位置
  15.     glVertex2d(0.1f, -0.1f);//位置
  16.     glVertex2d(0.1f, 0.1f);//位置
  17.     glVertex2d(-0.1f, 0.1f);//位置
  18.    
  19.     glEnd();
  20.     glFlush();
  21.    
  22. }
  23.  
  24. void keyboard(unsigned char key, int x, int y)
  25. {
  26.     switch (key) {
  27.         case 'q':
  28.         case 'Q':
  29.         case '\033':  /* '\033' は ESC の ASCII コード */
  30.             exit(0);
  31.         default:
  32.             break;
  33.     }
  34. }
  35.  
  36.  
  37.  
  38. void mouse(int btn, int state, int x, int y){
  39.    
  40.    
  41.     if(btn == GLUT_LEFT_BUTTON == state == GLUT_DOWN)
  42.     {
  43.        
  44.         mouseX = x;
  45.         mouseY = y;
  46.         g_pressed = 1;
  47.     }
  48.     else if(btn == GLUT_LEFT_BUTTON == state==GLUT_UP)
  49.     {
  50.         g_pressed = 0;
  51.        
  52.     }
  53.      }
  54.  
  55.  
  56. void motion(int x, int y) {
  57.     {
  58.         shiftX += (float)(x - mouseX);
  59.         shiftY -= (float)(y - mouseY);
  60.        
  61.         glutPostRedisplay();
  62.     }
  63.    
  64.     printf("X = %d : Y = %d\n" , x , y);//カーソルの座標を表示
  65.    
  66.    
  67.    
  68. }
  69.  
  70.  
  71. void init(void)
  72.  
  73.     {
  74.         glClearColor(1.0, 1.0, 1.0, 0.0);
  75.    
  76. }
  77.  
  78. int main(int argc, char *argv[])
  79. {
  80.     glutInitWindowPosition(100, 100);//ウィンドウの位置
  81.     glutInitWindowSize(600, 600);//ウィンドウの幅と大きさ
  82.     glutInit(&argc, argv);
  83.     glutInitDisplayMode(GLUT_RGBA);
  84.     glutCreateWindow(argv[0]);
  85.     glutDisplayFunc(display);//描画処理が必要なとき。
  86.     glutKeyboardFunc(keyboard);//キーボードの入力があったとき。
  87.     glutMouseFunc(mouse);//マウスボタンが押されたか離されたとき。
  88.     glutMotionFunc(motion);//マウスでドラッグが行われているとき。
  89.     init();
  90.     glutMainLoop();
  91.     return 0;
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement