【发布时间】:2015-02-02 09:06:15
【问题描述】:
我正在尝试制作一种算法来处理两个边界框(我的播放器和一些实体对象)之间的碰撞,而不使用 SFML 提供的 sf::Rect intersects。现在,这就是我检测实际碰撞的方式:
if (obstacle.GetPosition().x < p.getPlayerPosition().x + p.getPlayerSize().x &&
obstacle.GetPosition().x + obstacle.GetSize().x > p.getPlayerPosition().x &&
obstacle.GetPosition().y < p.getPlayerPosition().y + p.getPlayerSize().x &&
obstacle.GetSize().y + obstacle.GetPosition().y > p.getPlayerPosition().y)
{
// Collision
}
但是,我还需要弄清楚玩家在四个障碍物的哪一个上相撞,这样我才能设置正确的玩家位置。有没有人知道如何尽可能简单有效地做到这一点?
【问题讨论】:
标签: c++ collision-detection sfml