Окно Pygame мгновенно закрывается? - PullRequest
2 голосов
/ 24 марта 2019

Когда я пытаюсь запустить этот код пигмея, он мгновенно закрывается ??

Окно не закрывается мгновенно, когда я прекращаю рисовать текст, поэтому я знаю, что, должно быть, я что-то сделал не так.

import pygame
background_colour = (255, 255, 255)
(width, height) = (1920, 1080)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('fat')
screen.fill(background_colour)
font = pygame.font.Font(None, 32)
color = pygame.Color('dodgerblue2')
pygame.display.flip()
running = True
while running:
  for event in pygame.event.get():
    if event.type == pygame.QUIT:
      running = False




text = ""

while running:
  for event in pygame.event.get():
      if event.type == pygame.KEYDOWN:
        vanishingtext += event.unicode
        text += event.unicode
      elif event.type == pygame.K_BACKSPACE:
         text = text[:-1]        
      elif event.type == pygame.K_RETURN:
        interpret(text)
        text = ""
      else:
        pass

        txt_surface = font.render(text, True, color)
        screen.blit(txt_surface, (50, 100))

Я ожидаю появления экрана, который позволит мне печатать и возвращать, когда я нажимаю ввод, текст должен полностью исчезнуть, и должна быть запущена функция, которая будет интерпретировать строку.я еще не определил interpet как функцию, но я делаю это после того, как выяснил, смогу ли я заставить его работать на экране.

1 Ответ

1 голос
/ 25 марта 2019

Код не звонит pygame.init().Также есть два цикла событий, второй из которых просто пропадет сразу после того, как running станет False.

import pygame

pygame.init()

(width, height) = ( 400, 200)
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('fat')

background_colour = pygame.Color('white')
color   = pygame.Color('dodgerblue2')
font    = pygame.font.Font(None, 32)
clock   = pygame.time.Clock()
running = True
text    = ''

while running:

    # handle events and user-input
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if ( event.key >= pygame.K_SPACE and event.key <= pygame.K_z ):
                # Append key-stroke's character
                text += event.unicode
            elif ( event.key == pygame.K_BACKSPACE ):
                text = text[:-1]
            elif ( event.key == pygame.K_RETURN ):
                print("interpret(text) - NOT IMPLEMENTED")
                text = ""

    # repaint the screen
    screen.fill(background_colour)
    txt_surface = font.render(text, True, color)
    screen.blit(txt_surface, (50, 100))

    pygame.display.flip()
    clock.tick_busy_loop(60) # limit FPS

. Этот код дает мне окно под названием «толстый» с белым фоном.Печатание на английской клавиатуре дает мне синие буквы, которые могут быть разделены.Нажатие Enter несколько обрабатывается.

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