저는 C++과 SDL로 약간의 2D 플랫폼/파이팅 게임을하고 있으며, 충돌 감지에 많은 문제가 있습니다.2D 플랫폼과 양축의 충돌 문제
레벨은 타일 배열로 구성되어 있으며 for 루프를 사용하여 각 패턴을 처리합니다 (이 패턴을 수행하는 가장 좋은 방법은 아닐 수 있습니다. 도움이 필요할 수도 있음). 캐릭터의 각면에 대해, 그 방향으로 한 픽셀 씩 이동시키고 충돌을 확인합니다 (또한 캐릭터가 그 방향으로 움직이는 지 확인합니다). 충돌이 발생하면 속도를 0으로 설정하고 플레이어를 타일 가장자리로 이동시킵니다.
내 문제는 먼저 수평 충돌을 확인하고 플레이어가 프레임 당 둘 이상의 픽셀에서 수직으로 이동하면 타일이 수평이더라도 수평 충돌을 처리하고 문자가 타일의 측면으로 이동한다는 것입니다. (이상). 수직 충돌을 먼저 처리하면 수평 축에 대한 작업을 제외하면 동일하게 수행됩니다.
두 축의 충돌을 어떻게 처리 할 수 있습니까? 어떻게 처리하는지보다 충돌을 처리 할 수있는 더 좋은 방법이 있습니까?
캐릭터를 이동하기 전에 또는 이동 한 다음 확인한 후에 충돌을 확인하고 있습니까? –
캐릭터를 옮긴 후 확인하고 있습니다. – ausgat