提示コードのコメント部ですがX軸をマイナスすることによって横にカメラを回転出来るのですがすぐに速度が下がりやがて回転しなくなるのですがこれはなぜでしょうか?戦車の砲台のようにカメラを回転させたいのですがどうすればいいのでしょうか?
cpp
1//キー入力 2void Game::KeyInput() 3{ 4#define ROTATE_SPEED 0.1f 5 6 7 //モード切り替え 8 if (mInput->KeyDown(GLFW_KEY_F1) == true) 9 { 10 Function_Key = 1; 11 } 12 else if (mInput->KeyDown(GLFW_KEY_F2) == true) 13 { 14 Function_Key = 2; 15 } 16 else if (mInput->KeyDown(GLFW_KEY_F3) == true) 17 { 18 Function_Key = 3; 19 } 20 else if (mInput->KeyDown(GLFW_KEY_F4) == true) 21 { 22 Function_Key = 4; 23 } 24 else if (mInput->KeyDown(GLFW_KEY_F5) == true) 25 { 26 Function_Key = 5; 27 } 28 else if (mInput->KeyDown(GLFW_KEY_F6) == true) 29 { 30 Function_Key = 6; 31 } 32 else if (mInput->KeyDown(GLFW_KEY_F7) == true) 33 { 34 Function_Key = 7; 35 } 36 else if (mInput->KeyDown(GLFW_KEY_F8) == true) 37 { 38 Function_Key = 8; 39 } 40 else if (mInput->KeyDown(GLFW_KEY_F9) == true) 41 { 42 Function_Key = 9; 43 } 44 else if (mInput->KeyDown(GLFW_KEY_F10) == true) 45 { 46 Function_Key = 10; 47 } 48 else if (mInput->KeyDown(GLFW_KEY_F11) == true) 49 { 50 Function_Key = 11; 51 } 52 else if (mInput->KeyDown(GLFW_KEY_F12) == true) 53 { 54 Function_Key = 12; 55 } 56 57 switch (Function_Key) 58 { 59 60 case 1: //カメラ移動 61 { 62 if (mInput->KeyDownHold(GLFW_KEY_UP) == true) 63 { 64 mCameraPosition.y += +0.1f; 65 }else if (mInput->KeyDownHold(GLFW_KEY_DOWN) == true) 66 { 67 mCameraPosition.y += -0.1f; 68 }else if (mInput->KeyDownHold(GLFW_KEY_LEFT) == true) 69 { 70 mCameraPosition.x += +0.1f; 71 } 72 else if (mInput->KeyDownHold(GLFW_KEY_RIGHT) == true) 73 { 74 mCameraPosition.x += -0.1f; 75 } 76 else if (mInput->KeyDownHold(GLFW_KEY_Z) == true) 77 { 78 mCameraPosition.z += +0.1f; 79 } 80 else if (mInput->KeyDownHold(GLFW_KEY_X) == true) 81 { 82 mCameraPosition.z += -0.1f; 83 } 84 85 //カメラ向き 86 if (mInput->KeyDownHold(GLFW_KEY_W) == true) 87 { 88 mCameraVector.y += +0.1f; 89 } 90 else if (mInput->KeyDownHold(GLFW_KEY_S) == true) 91 { 92 mCameraVector.y += -0.1f; 93 94 } 95 ///////////////////////////////////////////////////////////////////////////////// 96 else if (mInput->KeyDownHold(GLFW_KEY_A) == true) 97 { 98 mCameraVector.x += +0.1f; 99 100 } 101 else if (mInput->KeyDownHold(GLFW_KEY_D) == true) 102 { 103 mCameraVector.x += +0.1f; 104 105 } 106 /////////////////////////////////////////////////////////////////////////////// 107 mCameraVector.z = -1; 108 109 mCamera->setMove(mCameraPosition); //移動 110 mCamera->setCenter(mCameraVector); //向き 111 } 112 break; 113 114 115 case 2: //カメラ移動 116 { 117 if (mInput->KeyDownHold(GLFW_KEY_UP) == true) 118 { 119 printf("aaa\n"); 120 pos.y += 1.0f; 121 } 122 else if (mInput->KeyDownHold(GLFW_KEY_DOWN) == true) 123 { 124 pos.y += -1.0f; 125 } 126 else if (mInput->KeyDownHold(GLFW_KEY_LEFT) == true) 127 { 128 pos.x += -1.0f; 129 } 130 else if (mInput->KeyDownHold(GLFW_KEY_RIGHT) == true) 131 { 132 pos.x += +1.0f; 133 } 134 else if (mInput->KeyDownHold(GLFW_KEY_Z) == true) 135 { 136 137 } 138 else if (mInput->KeyDownHold(GLFW_KEY_X) == true) 139 { 140 141 } 142 } 143 break; 144 } 145 146 ExitGameKey(); //プログラム終了キー入力 147#undef ROTATE_SPEED 148} 149
回答2件
あなたの回答
tips
プレビュー