Вывод по нажатию мыши

Есть код, который рисует поле, помогите, как сделать так, что бы при нажатие на одну из клеток, выводило её координаты, а если нажималось, не на поле, выводило-"Мимо". Например нажав на самую левую верхнюю клетку, выводило - 0, 0

import pygame


def main():
    pygame.init()
    size = 550, 550
    screen = pygame.display.set_mode(size)
    pygame.display.set_caption('Инициализация игры')
    board = Board(5, 7)
    board.set_view(15, 15, 70)
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
        screen.fill((0, 0, 0))
        board.render(screen)
        pygame.display.flip()
    pygame.quit()


class Board:
    # создание поля
    def __init__(self, width, height):
        self.width = width
        self.height = height
        self.board = [[0] * width for _ in range(height)]
        # значения по умолчанию
        self.left = 10
        self.top = 10
        self.cell_size = 30

    # настройка внешнего вида
    def set_view(self, left, top, cell_size):
        self.left = left
        self.top = top
        self.cell_size = cell_size

    def render(self, screen):
        for y in range(self.height):
            for x in range(self.width):
                pygame.draw.rect(screen, pygame.Color(255, 255, 255),
                                 (x * self.cell_size + self.left,
                                  y * self.cell_size + self.top, self.cell_size, self.cell_size), 1)


if __name__ == '__main__':
    main()

Ответы (1 шт):

Автор решения: Вадим Королёв

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

## Вне цикла
font = pygame.font.SysFont('название шрифта', размер шрифта)


## В главном игровом цикле
## Получение координат мыши
mpos = pygame.mouse.get_pos()
## Нажал ли юзер на мышь?
mpressed = pygame.mouse.get_pressed()
if mpressed[0]: ## Левая кнопка мыши
    raw_x = mpos[0] // board.cell_size
    raw_y = mpos[1] // board.cell_size
    if raw_x > board.width - 1 or raw_y > board.height - 1:
        text_surface = font.render("Мимо", True, (кортеж RGB))
    else:
        text_surface = font.render(str(raw_x) + ";" + str(raw_y), True, (кортеж RGB))

screen.blit(text_surface, (кортеж координат))

→ Ссылка