Я пытаюсь создать игру-змейку с SFML + CPP. На данный момент я хочу сосредоточиться на столкновении, поэтому, когда змея уходит влево, она должна вернуться в правую часть экрана. С помощью подобных вопросов мне удалось заставить змею двигаться частично правильно влево и вверх (координаты x и y) (частично потому, что при движении влево она прыгает, как 20 пикселей, выходя из правой стороны). Вот код, который работает, как описано, основная проблема - правая и нижняя части.
void Game::update()
{
sf::Vector2f movement(0.0f, 0.0f);
if (movingUp) { movement.y -= 0.1f; }
if (movingDown) { movement.y += 0.1f; }
if (movingLeft) { movement.x -= 0.1f; }
if (movingRight) { movement.x += 0.1f; }
for(auto& snakey : snake){
if (snakey.getPosition().x <= 0 ) { movement.x = myWindow.getSize().y; }
if (snakey.getPosition().y <= 0 ) { movement.y = myWindow.getSize().x; }
if (snakey.getPosition().x + snakey.getLocalBounds().width >= myWindow.getSize().x ) { movement.y = 0.0f;}
if (snakey.getPosition().y + snakey.getLocalBounds().height >= myWindow.getSize().y ) { movement.x = 0.0f;}
snakey.move(movement);
} /*If the whole background would be a map of vectors i could technically push the snake vector from head to tail (stack) onto the beginning?*/
}
Заранее спасибо. Edit Кажется, я пропустил вопрос напрямую, так что вот он. Как переместить змею по назначению (go влево, выйти из правого и c)?