不知道为什么语法无效,有人知道吗?它说,代码的两行特别是语法无效。这可能很容易解决,所以请怜悯我的灵魂。
我没有尝试过任何东西,因为这是一个非常基本的问题,我可能在编码方面很烂
import pygame
import sys
import time
pygame.init()
(width, height) = (1920, 1080)
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, 100)
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 = ""
if len(text) > 20:
text = text[:-1]
# repaint the screen
screen.fill(background_colour)
txt_surface = font.render(text, True, color)
screen.blit(txt_surface, (50, 100))
response = font.render(Room.defaultprompt, True, color)
screen.blit((response,(80, 150))
clock.tick_busy_loop(60) # limit FPS
display.flip()
该代码可以(但不再需要)接受用户键入的内容并将其显示在屏幕上。在我尝试使pygame绘制另一行文本后,它停止工作。 (顺便说一句,我知道Room.defaultprompt是未定义的,但这是因为其余的代码不在帖子中)
答案 0 :(得分:5)
密切关注它,因此此行出现错误:
screen.blit((response,(80, 150))
应该在什么时候出现:
screen.blit(response,(80, 150))
@ErikXIII的答案没什么不同