Как замедлить переход игры Snake от перехода вправо к переходу с SDL2? - PullRequest
0 голосов
/ 11 мая 2018

я делаю игру Snake на C ++ с SDL2.Когда змея движется вправо, и пользователь нажимает клавишу со стрелкой вниз, я убираю хвост и добавляю новую головку следующим образом:

void SnakeGame::TransitionDown() {
    for (SnakePart snakePart : parts) {
        RemoveTail();
        NewHead();
    }
    direction = 3;
} 

void SnakeGame::RemoveTail() {
    parts.erase(parts.end() - 1);
}

void SnakeGame::NewHead() {
    SnakePart sp;
    sp.LoadPart(GameWindow, GameRenderer, GetHeadXPosition(), GetHeadYPosition() + 18);
    parts.insert(parts.begin(), sp);
}

Если я вставлю цикл for в функцию TransitionDown () иувеличьте его только на часть размера змеи, я могу видеть, что он перемещается так, как я хочу - только то, что он делает это слишком быстро!Можно ли как-нибудь убрать хвост и добавить новую голову, а затем подождать abit, прежде чем повторить?

...