Задержка ввода клавиатуры Pygame с прямоугольным - PullRequest
0 голосов
/ 23 марта 2019

так что я только начинаю изучать кодирование игр с использованием Pygame, и я работаю над переделкой змеи с нуля. Но я столкнулся с необычной проблемой, связанной с задержкой события ввода с клавиатуры, и из того, что я искал, это было от pygame.draw.rect() в пределах цикла for, как показано:

    for row in range(25):
        for column in range(25):
            pygame.draw.rect(screen, blue,
            [(margin + (width+margin) * row,
             margin + (height+margin) * column),
            (width, height)])
            grid[row][column] = 0

            wall1 = pygame.draw.rect(screen, red,
            [(margin + (width+margin) * row,
            margin),
            (width, height)])
            grid[row][0] = 9

            wall2 = pygame.draw.rect(screen, red,
            [(margin,
            margin + (height+margin) * column),
            (width, height)])
            grid[0][column] = 9

            wall3 = pygame.draw.rect(screen, red,
            [(margin + (width+margin) * row,
            margin + 24*(height+margin)),
            (width, height)])
            grid[row][24] = 9

            wall4 = pygame.draw.rect(screen, red,
            [(margin + 24*(width+margin),
            margin + (height+margin) * column),
            (width, height)])
            grid[24][column] = 9

Я использовал следующие переменные:

width = 20
height = 20
margin = 5

red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
white = (255, 255, 255)
black = (0, 0, 0)

grey = (205, 205, 205)
yellow = (255, 255, 0)

startX = 6
startY = 6
moveX = 1
moveY = 0

grid = []
for row in range(25):
    grid.append([])
    for column in range(25):
        grid[row].append(0)

Я придумал решение, используя unionall(), но я не знаю, как получить rect каждой и каждой нарисованной rect в цикле. Другое решение было использовать pygame.surfarray.make_surface(), но я понятия не имею, как его использовать. Я также попытался установить FPS на 60, используя pygame.time.Clock().tick и pygame.time.delay(100), но ни один из них не работал. Помогите пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...