как сделать вывод pygame от пользователя

Как сделать входной файл pygame от пользователя:

Я пытаюсь, чтобы пользователь вводил что-то, и pygame печатает его на экране.

Это моя текущая программа:

import pygame, pygame.font, pygame.event, pygame.draw, string from pygame.locals import * def get_key(): while 1: event = pygame.event.poll() if event.type == KEYDOWN: return event.key else: pass def display_box(screen, message): "Print a message in a box in the middle of the screen" fontobject = pygame.font.Font(None,18) pygame.draw.rect(screen, (0,0,0), ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10, 200,20), 0) pygame.draw.rect(screen, (255,255,255), ((screen.get_width() / 2) - 102, (screen.get_height() / 2) - 12, 204,24), 1) if len(message) != 0: screen.blit(fontobject.render(message, 1, (255,255,255)), ((screen.get_width() / 2) - 100, (screen.get_height() / 2) - 10)) pygame.display.flip() def ask(screen, question): "ask(screen, question) -> answer" pygame.font.init() current_string = [] display_box(screen, question + ": " + string.join(current_string,"")) while 1: inkey = get_key() if inkey == K_BACKSPACE: current_string = current_string[0:-1] elif inkey == K_RETURN: break elif inkey == K_MINUS: current_string.append("_") elif inkey <= 127: current_string.append(chr(inkey)) display_box(screen, question + ": " + string.join(current_string,"")) return string.join(current_string,"") def main(): screen = pygame.display.set_mode((320,240)) print ask(screen, "Name") + " was entered" if __name__ == '__main__': main() 

Я хочу, чтобы при входе пользователя вошел, он пропускает экран.

Помоги мне!

One Solution collect form web for “как сделать вывод pygame от пользователя”

Вот пример скрипта, который блистает на экране. В нем показано, как вы можете изменить строку name во время цикла через очередь событий pygame. Каждый кадр, экран очищается и поверхность имени перестраивается и разглаживается.

 import pygame from pygame.locals import * def name(): pygame.init() screen = pygame.display.set_mode((480, 360)) name = "" font = pygame.font.Font(None, 50) while True: for evt in pygame.event.get(): if evt.type == KEYDOWN: if evt.unicode.isalpha(): name += evt.unicode elif evt.key == K_BACKSPACE: name = name[:-1] elif evt.key == K_RETURN: name = "" elif evt.type == QUIT: return screen.fill((0, 0, 0)) block = font.render(name, True, (255, 255, 255)) rect = block.get_rect() rect.center = screen.get_rect().center screen.blit(block, rect) pygame.display.flip() if __name__ == "__main__": name() pygame.quit() 

Вот версия gist

  • Как blit изображение, в python, внутри области определенного изображения?
  • TypeError: объект 'int' не имеет атрибута '__getitem__'
  • Как избавиться от поверхностей пигама?
  • Как добавить фоновое изображение в pygame?
  • Pygame - Задержка звука
  • Как создать пули в pygame?
  • pygame падает при использовании метода заливки (цвета)
  • Может ли постоянный ввод ключа перемещать спрайт постоянно?
  • Как импортировать библиотеки pygame в pydev Eclipse?
  • Очередь событий Pygame
  • PyGame - получение размера загруженного изображения
  • Python - лучший язык программирования в мире.