提示コードの///コメント部内部のコードですが定数のif文が成立すると思いますがそれをそのまま変数に置き換えると成立しませんこれは何が原因なのでしょうか?
確認したこと
演算子の優先順位を確認してカッコをつけました。
Console
y -4 < 8 いいい y: -4 y: -3 y: -2 y: -1 y -4 < 8 いいい y: -4 y: -3 y: -2 y: -1 y -4 < 8 いいい y: -4 y: -3 y: -2 y: -1 y -4 < 8 いいい y: -4 y: -3
cpp
1 2void Stage::Renderer(const glm::mat4 view)const 3{ 4 5 glm::ivec2 cameraPosition = camera->getPosition();//glm::ivec2 int型 6 cameraPosition.x = cameraPosition.x / CELL; 7 cameraPosition.y = cameraPosition.y / CELL; 8 9 10 glm::ivec2 windowSize = FrameWork::GetWindowSize();//glm::ivec2 int型 11 windowSize.x = windowSize.x / CELL; 12 windowSize.y = windowSize.y / CELL; 13 14 15 16 17// printf("%d\n",cameraPosition.y - (windowSize.y / 2) /2); 18 //printf("%d\n\n",stage->at(0).size() - (stage->at(0).size() - windowSize.x) / 2); 19 //printf("%d\n\n",stage->at(0).size() - (stage->at(0).size() - windowSize.x) / 2); 20 printf("y %d\n\n",(cameraPosition.y - (windowSize.y / 2) / 2)); 21 printf(" < %d\n\n",((stage->size() - (stage->size() - windowSize.y)) / 2) ); 22 23///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 24 if(-4 < 8) 25 { 26 printf("いいい\n"); 27 } 28 29 if( (cameraPosition.y - (windowSize.y / 2) / 2) < ((stage->size() - (stage->size() - windowSize.y)) / 2) ) 30 { 31 printf("あああ\n"); 32 } 33///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 34 for(int y = cameraPosition.y - (windowSize.y / 2) / 2; y > ((stage->size() - (stage->size() - windowSize.y)) / 2); y++) 35 { 36 printf("y: %d\n",y); 37 38 if(y >= 0) 39 { 40 for(int x = cameraPosition.x - (windowSize.x / 2) / 2; x < (stage->at(y).size() - (stage->at(y).size() - windowSize.x)) / 2; x++) 41 { 42// printf("x: %d\n",x); 43 44 if( (x >=0) && (y >= 0) ) 45 { 46 printf("pos: %d , %d\n",x,y); 47 48 switch (stage->at(y).at(x) ) 49 { 50 case 1: 51 { 52 FrameWork::Renderer_Sprite(view,tile,glm::vec3( (CELL * x) - (FrameWork::GetWindowSize().x / 2 - (CELL /2)),(FrameWork::GetWindowSize().y / 2.0f - (CELL / 2)) - (CELL * y),0),glm::ivec2(0,0),glm::ivec2(CELL,CELL)); 53 } 54 break; 55 } 56 } 57 } 58 59 } 60 } 61 62 63/* 64 for(int y = 0; y < stage->size(); y++) 65 { 66 for(int x = 0; x < stage->at(y).size(); x++) 67 { 68 switch (stage->at(y).at(x) ) 69 { 70 case 2: 71 { 72// FrameWork::Renderer_Sprite(view,item,glm::vec3(20,20,0),glm::ivec2(0,0),glm::ivec2(32,41)); 73 FrameWork::Renderer_Sprite(view,tile,glm::vec3( (CELL * x) - (FrameWork::GetWindowSize().x / 2 - (CELL /2)),(FrameWork::GetWindowSize().y / 2.0f - (CELL /2)) - (CELL * y),0),glm::ivec2(0,0),glm::ivec2(CELL,CELL)); 74 FrameWork::Renderer_Sprite(view,item,glm::vec3( (CELL * x) - (FrameWork::GetWindowSize().x / 2 - (CELL /2)),(FrameWork::GetWindowSize().y / 2.0f - (CELL /2)) - (CELL * y),0),glm::ivec2(0,0),glm::ivec2(24,31)); 75 76 77 } 78 break; 79 80 } 81 } 82 } 83*/ 84 85}
成立しない場合のコードを提示してください。
そうでないと、成立しない場合の原因はわかりません。
回答1件
あなたの回答
tips
プレビュー