cpp
/*################################################# # 初期化 ###################################################*/ Game::Game(SDL_Renderer *ren){ render = ren; sprite = LoadImage("ast/piece.png"); position = glm::ivec2(CELL* 20, CELL * 20); //std::cout<<CELL<<std::endl; range.push_back(PlayerRange{glm::ivec2(position.x,position.y + CELL * 0),glm::ivec2(0,0),glm::ivec2(0,0),ObjectType::Player}); range.push_back(PlayerRange{glm::ivec2(position.x,position.y + CELL * 1),glm::ivec2(0,0),glm::ivec2(0,0),ObjectType::PlayerRange}); range.push_back(PlayerRange{glm::ivec2(position.x,position.y + CELL * 2),glm::ivec2(0,0),glm::ivec2(0,0),ObjectType::PlayerRange}); range.push_back(PlayerRange{glm::ivec2(position.x,position.y + CELL * 3),glm::ivec2(0,0),glm::ivec2(0,0),ObjectType::PlayerRange}); } /*################################################# # キー入力 ###################################################*/ void Game::Move(){ if(keyInput == KeyCode::Left) { moveVector.x = -1; moveVector.y = 0; } else if(keyInput == KeyCode::Right) { moveVector.x = 1; moveVector.y = 0; } else if(keyInput == KeyCode::Up) { moveVector.x = 0; moveVector.y = -1; } else if(keyInput == KeyCode::Down) { moveVector.x = 0; moveVector.y = 1; } frame++; if(frame > moveFrame) { range.at(0).vector = moveVector; if( (range.at(0).prevVector != glm::ivec2(0,0)) && (range.at(0).vector != glm::ivec2(0,0))) { for(int i = 0; i< range.size(); i++) { if( ( i + 1) < range.size() ) {//////////////////////////////////////////////////////////////////////////////// range.at(i + 1).position += range.at(i).prevVector * CELL; range.at(i).position += range.at(i).vector * CELL; range.at(i + 1).vector = range.at(i).prevVector;//////////////////////////////////////////////////////////////////////////////// } } //range.at(1).position += range.at(0).prevVector * CELL; //決め打ち //range.at(0).position += moveVector * CELL; //決め打ち } range.at(0).prevVector = range.at(0).vector; frame = 0; }}

0 コメント