SIMPENGINE.CPP
Upload User: nthssl
Upload Date: 2022-04-05
Package Size: 25357k
Code Size: 2k
Category:

OpenCV

Development Platform:

Visual C++

  1. #define WIN32_LEAN_AND_MEAN
  2. #define WIN32_EXTRA_LEAN
  3. #include "simpengine.h"
  4. void CSimpEngine::OnPrepare()
  5. {
  6. glEnable(GL_DEPTH_TEST);
  7. glEnable(GL_SMOOTH);
  8. glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  9. glLoadIdentity();
  10. }
  11. void CSimpEngine::OnMouseDownL(float x, float y) 
  12. {
  13. }
  14. void CSimpEngine::OnKeyDown(int nVirtKey)
  15. {
  16. switch (nVirtKey)
  17. {
  18. case VK_UP:
  19. gameCamera->velocity += CVector(0,0,2.0);
  20. break;
  21. case VK_DOWN:
  22. gameCamera->velocity += CVector(0,0,-2.0);
  23. break;
  24. case VK_RIGHT:
  25. gameCamera->velocity += CVector(1.0, 0.0, 0.0);
  26. break;
  27. case VK_LEFT:
  28. gameCamera->velocity += CVector(-1.0, 0.0, 0.0);
  29. break;
  30. case VK_ESCAPE:
  31. PostQuitMessage(0);
  32. break;
  33. case VK_ADD:
  34. mouseSensitivity += 0.05f;
  35. break;
  36. case VK_SUBTRACT:
  37. mouseSensitivity -= 0.05f;
  38. if (mouseSensitivity < 0.05)
  39. mouseSensitivity = 0.05;
  40. break;
  41. default:
  42. break;
  43. }
  44. }
  45. void CSimpEngine::OnMouseMove(int deltaX, int deltaY)
  46. {
  47. gameCamera->yaw += deltaX*mouseSensitivity;
  48. gameCamera->pitch -= deltaY*mouseSensitivity;
  49. }
  50. void CSimpEngine::OnMouseMove(int x, int y, int centerX, int centerY)
  51. {
  52. static float oldX;
  53. static float oldY;
  54. static float yaw = 0.0f;
  55. static float pitch = 0.0f;
  56. float mX, mY;
  57. mX = (float)x;
  58. mY = (float)y;
  59. if (mX < centerX/2)
  60. gameCamera->yaw -= 0.25f*mouseSensitivity;
  61. if (mX > centerX/2)
  62. gameCamera->yaw += 0.25f*mouseSensitivity;
  63. if (mY < centerY/2)
  64. gameCamera->pitch += 0.25f*mouseSensitivity;
  65. if (mY > centerY/2)
  66. gameCamera->pitch -= 0.25f*mouseSensitivity;
  67. oldX = mX;
  68. oldY = mY;
  69. }