Как сделать диапазон координат в pygame? - PullRequest
1 голос
/ 05 мая 2020

Это довольно простой вопрос, но я хочу закодировать что-то так, чтобы, когда вы находитесь в определенном диапазоне, и вы щелкаете по чему-либо, это меняет фон. Пока все работает нормально, но я знаю только, как это закодировать, чтобы при точных координатах X и Y вы могли щелкнуть. Как мне сделать так, чтобы, если вы находитесь в диапазоне 100-300 X (например) и 500-600 Y, что вы находитесь в диапазоне, в отличие от точных координат 100 X и 600 Y?

(кстати, вот фрагмент кода, с которым я работаю, я могу предоставить полный код, если хотите.)

if 120+75 > mouse[0] > 120 and 50 + 125 > mouse[1] > 125 and x == 110 and y == 60:
    print('Click to change')

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Вы должны определить верхнее левое положение прямоугольника angular области (x, y) и размер области (width, height):

x = 120
y = 125
width = 75
height = 50

Оценка, если мышь находится в области:

if x < mouse[0] x + width and y < mouse[1] y + height:
    print('Click to change')

Я рекомендую использовать pygame.Rect и .collidepoint(). Определите объект прямоугольника (x, y, ширина, высота) и оцените, находится ли наведение мыши в области прямоугольника angular:

rect = pygame.Rect(120, 125, 75, 50)
if rect.collidepoint(mouse):
    print('Click to change')
0 голосов
/ 05 мая 2020

Похоже, вы пытаетесь сделать кнопку, в вашем коде есть мышь и x и y, не уверен, что такое x и y, если мышь находится в позиции мыши, но вот как это сделать с позицией кнопки x, положение, ширина и высота по оси y.

mouse_pos = pygame.mouse.get_pos()
if mouse_pos[0] > x_pos and mouse_pos[0] < x_pos + width:
    if mouse_pos[1] > y_pos and mouse_pos[1] < y_pos + height:
        if click:
            background = (255,255,255) #change background
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...