蛇游戏 - 碰撞我不知道

Snake Game - Collision I have no idea

我写游戏"snake"但我对body蛇有问题,即蛇头被保存到列表

std::list<sf::RectangleShape> listaSnake;(图书馆 SFML)

而且我不知道当蛇头的位置与位置相等时如何进行碰撞body。我只知道如何在头部和尾部之间进行碰撞。 我的想法:

auto HeadSnake = listaSnake.front();
auto tail = listaSnake.back();
    if (HeadSnake.getPosition().x == tail.getPosition().x && HeadSnake.getPosition().y == tail.getPosition().y) cout << "works!";

给定两个 sf::FloatRect 之间的 sf::RectangleShape you can construct a sf::FloatRect (which is just sf::Rect<float>) and then call sf::FloatRect::intersects

举个例子:

sf::RectangleShape a(..);
sf::RectangleShape b(..);

sf::FloatRect a_rect(a.getPosition(), a.getSize());
sf::FloatRect b_rect(b.getPosition(), b.getSize());

if (a_rect.intersects(b_rect)) {
    // ...
}