【发布时间】:2019-08-04 20:55:18
【问题描述】:
我到处寻找有关碰撞检测的一些技巧,但我似乎真的找不到任何对我有意义或对我有用的东西。我了解如何检测两个正方形是否发生碰撞,但我不明白如何以正确的方式将它们与重力分开,以及什么不适用于它们。
if (tile->position.x < other->position.x + Tile::size && tile->position.x + Tile::size > other->position.x &&
tile->position.y < other->position.y + Tile::size && tile->position.y + Tile::size > other->position.y) {
glm::vec3 tCenter = tile->getCenter();
glm::vec3 oCenter = other->getCenter();
glm::vec3 dir = tCenter - oCenter;
dir.x = dir.x / (Tile::size / 2.0f);
dir.y = dir.y / (Tile::size / 2.0f);
tile->position += dir;
tile->velocity *= 0.0f;
}
所以基本上如果发生碰撞,然后将它们分开。在网上阅读了一些东西后,我想出了这个方法。这是超级接近,但有一些我似乎无法理解的口吃。
有谁知道我错过了什么或者你能指出我正确的方向吗?
【问题讨论】:
标签: c++ 2d collision-detection game-physics collision