蛇游戏-碰撞我不知道

Snake Game - Collision I have no idea

本文关键字:我不知道 碰撞 游戏      更新时间:2023-10-16

我编写游戏"snake",我有一个问题,即蛇头被保存到列表

std::list<sf::RectangleShape> listaSnake; (library SFML)

和我不知道我怎么做碰撞当位置蛇头将等于位置身体。我只知道如何做头部和尾部的碰撞。我的想法:

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

给定一个sf::RectangleShape,你可以构造一个sf::FloatRect(这只是sf::Rect<float>),然后在两个sf::FloatRect之间调用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)) {
    // ...
}
相关文章: