蛇游戏 - 碰撞我不知道
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)) {
// ...
}
我写游戏"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)) {
// ...
}