Объект, проходящий через стену во время столкновения - PullRequest
1 голос
/ 26 августа 2011

Я делаю игру, которая использует очень простое обнаружение столкновений.Я не использую коробку 2D, потому что это перебор.По сути, это смесь понга и футбольного мяча.Когда мяч набирает скорость и имеет очень высокую скорость, он проходит через стену, с которой он должен столкнуться.Код работает с медленной и обычной скоростью, но не с очень быстрым движением.

Это фрагмент моего кода:

pos.x - это вектор, в котором содержится позиция x моего шара.

if (pos.x - radius < wallLeft)
{
        pos.x = wallLeft + radius;
        vel.x *= -1;
}

Что я могу сделать, чтобы улучшитьэтот?спасибо

Ответы [ 3 ]

0 голосов
/ 26 августа 2011

Возможно, если (pos.x - radius) == wallLeft, тогда шар уже касается стены, и его скорость можно изменить на противоположную; если вы добавите это в качестве дополнительного теста в цикле, это поможет?

0 голосов
/ 26 августа 2011

Единственная идея, которая у меня возникает, заключается в том, что скорость настолько высока, что при добавлении ее в позицию вы получаете переполнение, снова делая pos.x> wallLeft + radius.

0 голосов
/ 26 августа 2011

Попробуйте немного увеличить wallLeft, чтобы скорость шариков никогда не превышала wallLeft. Кажется, что после того, как ваш шарик опустился ниже 0, он дает сбой (или у вас есть код для этого, которого я не знаю), не знакомый сфреймворк или как работает весь ваш код, но это самый простой способ решить его.Если вы не хотите этого делать, возможно, где-то есть код, который делает что-то, если x шара меньше 0, и вам придется сделать это немного мягче, возможно, сделайте так, чтобы, если x шара былменьше -50 или что-то в этом роде (поиграйтесь с числом, пока оно не заработает)

...