Как получить черный экран и нарисованные сетки? - PullRequest
1 голос
/ 08 февраля 2020

У меня есть проблема. Вот мой код:

import pygame
import tkinter as tk
class cube():
    rows = 20
    w = 500
    def __init__(self, start, dirnx=1, dirny=0, color=(255, 0, 0)):
        pass
class snake(object):
    def __init__(self, color, pos):
        pass
def drawGrid(w, rows, surface):
    b = 255
    sizeBtwn = w // rows
    x = 0
    y = 0
    for l in range(rows):
        x = x + sizeBtwn
        y = y + sizeBtwn
        pygame.draw.line(surface, (b, b, b), (x,0), (x,w))
        pygame.draw.line(surface, (b, b, b), (0,y), (w,y))
def redrawWindow(surface):
    global rows, width
    surface.fill((0,0,0))
    drawGrid(width, rows, surface)
    pygame.display.update()
def main():
    global width, rows
    width = 1280
    height = 720
    rows = 40
    win = pygame.display.set_mode((width, height))
    s = snake((255, 0, 0), (10, 10))
    run = True
    clock = pygame.time.Clock()
    while run:
        clock.tick(30)
        redrawWindow(win)
if __name__ == "__main__":
    main()

Когда я запускаю, у меня ничего нет. У меня серое окно. Но у меня должно быть черное окно с сетками ... Почему ничего не появляется?

Спасибо, что помогли мне!

1 Ответ

1 голос
/ 08 февраля 2020

Вы должны обрабатывать события, либо pygame.event.pump(), либо pygame.event.get().
Эти функции также не обрабатывают внутренние события. Это необходимо для того, чтобы система реагировала и для обновления дисплея.

def main():
    # [...]

    clock = pygame.time.Clock()
    while run:

        # handle events
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False

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