使用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循环并将其增加只是蛇大小的一部分,我可以看到它以我想要的方式转换 - 只是它做得太快了!有什么方法我可以删除尾部并添加一个新头,然后在重复之前等待升技?