当我尝试使用event.type时,它说了这一点。我以前没有使用过事件模块,但是在我的书中说它应该可以工作。我在Google和堆栈溢出时进行了查找,但没有找到类似的内容(我将Javascript用于代码段,因为我不知道如何将代码转换为python。)
import pygame
from pygame import *
pygame.init()
pygame.event.get()
black = (0,0,0)
white = (255,255,255)
playercoords_a = (275,425)
playercoords_b = (275,475)
playercoords_c = (225,475)
playercoords_d = (225,425)
playertotalcoords = (playercoords_a, playercoords_b, playercoords_c, playercoords_d)
windowSurface = pygame.display.set_mode((500, 500),0,32)
windowSurface.fill(black)
xmod = 0
ymod = 0
pygame.draw.polygon(windowSurface,white,((275,425),(275,475),(225,475),(225,425)))
pygame.display.update()
while True:
if event == KEYDOWN:
if event.key == K_LEFT:
print('it works')
windowSurface.fill((black,))
pygame.draw.polygon(windowSurface,white,((275 + xmod,425 + ymod),(275 + xmod,475 + ymod),(225 + xmod,475 + ymod),(225 + xmod,425 + ymod)))
pygame.display.update()
第19行,在
如果event.type == KEYDOWN:
AttributeError:“模块”对象没有属性“类型”
答案 0 :(得分:2)
在pygame中,您通常有一个for
循环用于事件处理,在您的情况下,它应如下所示:
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
print('it works')
...
在这种情况下,event是从pygame.event.get()
返回的事件对象,而不是模块。
您要做的是使用event
将pygame的from pygame import *
模块导入全局名称空间。因此,当您运行
while True:
if event == KEYDOWN:
event
实际上就是这个模块,而不是实际事件对象。
从不from pygame import *
。