【发布时间】:2016-04-12 11:53:07
【问题描述】:
这是我使用的碰撞检测形式,它不允许玩家通过,但当它与瓷砖碰撞时,它会同时执行两个 if 语句。
if (_mainCharac->position->X < (_mainCrate->posRect->X + _mainCrate->sourceRect->Width) &&
(_mainCharac->position->X + _mainCharac->sourceRect->Width) > _mainCrate->posRect->X &&
_mainCharac->position->Y < (_mainCrate->posRect->Y + _mainCrate->sourceRect->Height) &&
_mainCharac->sourceRect->Height + _mainCharac->position->Y > _mainCrate->posRect->Y)
{
if (_mainCharac->position->X > _mainCrate->posRect->X)
_mainCharac->position->X = _mainCharac->position->X + 2;//Right
if (_mainCharac->position->Y < _mainCrate->posRect->Y)
_mainCharac->position->Y = _mainCharac->position->Y - 2;//Top
if (_mainCharac->position->X < _mainCrate->posRect->X)
_mainCharac->position->X = _mainCharac->position->X - 2;//Left
if (_mainCharac->position->Y > _mainCrate->posRect->Y)
_mainCharac->position->Y = _mainCharac->position->Y + 2;//Bottom
}
【问题讨论】:
标签: c++ collision-detection bounding-box