我一直在尝试用Python(和PyGame)开发一个文本冒险类游戏,因此需要一个模块来重复地将文本blit到屏幕上。搜索了几个后,我下载了KTextSurfaceWriter并安装了它。然后我尝试按照此处提供的文本(http://www.pygame.org/project-KTextSurfaceWriter-1001-.html)
进行演示我的代码:
from ktextsurfacewriter import KTextSurfaceWriter
import pygame
from pygame.locals import *
import pygame.font
pygame.font.init()
screen = pygame.display.set_mode((640,480), 0, 32)
surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)
surface.fill( (255,255,255,255) )
def blitSurface():
screen.blit(surface, (50,50) )
pygame.display.update()
blitSurface()
def waitForUserAction():
while True:
for event in pygame.event.get():
if event.type == QUIT:
import sys
sys.exit()
if event.type == KEYDOWN:
return
waitForUserAction()
但是,这会在第9行引发模块错误。我对Python很新,我在这个问题上看到的大部分解决方案都涉及使用我在开始时已经拥有的'from [module] import'代码
答案 0 :(得分:2)
您正在调用pygame.surface
模块:
surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)
使用pygame.surface.Surface()
或使用pygame.Surface()
(请注意首都S
);这些都是同一个类,但pygame.surface
是定义它的模块。
答案 1 :(得分:0)
我看过你的代码和源代码。
surface = pygame.surface ( (400, 400), flags = SRCALPHA, depth = 32)
在您的代码中,"表面"是小写,这是一个python模块,所以python解释器告诉你错误的消息。
surface = pygame.Surface( (400,400), flags=SRCALPHA, depth=32 )
在源代码中," Surface"是资本,可能是一个阶级。