← Все вопросы
Как не дать персонажу уехать за край экрана в pygame?
5
Сделал управление стрелками, всё двигается. Но герой спокойно уезжает за край окна и пропадает совсем. Как ограничить движение, чтобы он упирался в стенки экрана и не вылезал?
1 ответ
10
✓ Принятый ответ — помог автору
После того как ты поменял координаты, добавь проверки, которые «зажимают» их в пределах экрана. Учитывай размер самого героя, иначе он будет наполовину вылезать.
WIDTH, HEIGHT = 640, 480
size = 40 # размер квадрата-героя
# ... двигаем x, y ...
if x < 0: x = 0
if x > WIDTH - size: x = WIDTH - size
if y < 0: y = 0
if y > HEIGHT - size: y = HEIGHT - size
Идея: если координата вышла за допустимый предел — возвращаем её на границу. WIDTH - size, а не WIDTH, потому что прямоугольник рисуется от левого-верхнего угла, и его правый край — это x + size.
То же самое можно записать одной строкой через max/min: x = max(0, min(x, WIDTH - size)).
Ваш ответ
Войдите, чтобы ответить на вопрос.