Я новичок в Game Maker, и у меня возникли проблемы с функцией.
Я делаю игру, похожую на понг, и сталкиваюсь с проблемой, когда мяч сталкивается с верхней частью ракетки или нижней частью (меньшие стороны, а не лицом к лицу), мяч и ракетка замерзают.
Единственный код, который у меня есть в случае столкновения мяча с ракеткой, - это изменить горизонтальную скорость.
скорость *= -1;
Я понимаю проблему в том, что, поскольку мяч коснулся вершины, горизонтальное направление меняется на противоположное, но он все еще находится в контакте с поверхностью, поскольку вертикальная скорость не изменилась, поэтому снова меняется и застревает в бесконечном цикле.
Я пробовал много вещей, чтобы обойти это, например, установить сигнал тревоги, чтобы определить, касается ли мяч все еще после одного кадра, и изменить вертикальную скорость (безуспешно).
Я также попытался проверить, совпадает ли y-позиция верхней части мяча с y-позицией нижней части лопасти (и наоборот), и изменить вертикальную скорость, если это так. но опять безуспешно.
я уверен, что оба эти метода работают, если используется правильный код, но я должен просто выполнять его неправильно.
Какой метод я должен использовать, чтобы сделать так, чтобы, если мяч сталкивается с верхней или нижней частью весла, он не застревал, а в идеале просто менял вертикальную скорость вместо горизонтальной скорости?
Я уверен, что у этого есть простое решение, но потому что я новичок, я не могу его решить!
Благодарность!