如何减慢Snake游戏从右移到SDL2的过渡?

时间:2018-05-11 18:06:50

标签: c++ sdl sdl-2

使用SDL2在C ++中制作Snake游戏。当蛇向右移动并且用户按下向下箭头键时,我移除尾部并添加一个新头像这样:

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);
}

如果我在TransitionDown()函数中放入一个for循环并将其增加只是蛇大小的一部分,我可以看到它以我想要的方式转换 - 只是它做得太快了!有什么方法我可以删除尾部并添加一个新头,然后在重复之前等待升技?

0 个答案:

没有答案