В дополнение к прекрасному предложению Тони, я хотел бы рассказать о том, как справляться со столкновениями:
Существует четыре границы, поэтому необходимо проверить четыре ситуации.
Возможен горизонтальный и вертикальный отскок одновременно!Поэтому следите за горизонтальной и вертикальной скоростью независимо, горизонтальный отскок повлияет только на горизонтальное движение.
Кроме того, если ваш объект перемещается более чем на один пиксель за раз, вы можете не увидеть точное попадание.(Подобно тому, как координата x вашего блока перемещается непосредственно от 1 до -1, не будучи 0. Таким образом, вы должны проверить, является ли граница на или выше границы, а не просто проверить на.1010 * Хорошей практикой также является проверка на столкновение только при движении к определенной границе. Если вы этого не сделаете, ваше окно может застрять, потому что оно сталкивается с одним и тем же краем после каждого движения.