4

这几行 python 3.2 代码使用最新的 pygame 模块来移动图像。它与这个例子有关:http: //www.pygame.org/docs/tut/MoveIt.html

这是我的代码:

import pygame
import sys 

pygame.init()
screen = pygame.display.set_mode((600,400))
bg = pygame.image.load('bg.jpg')
player = pygame.image.load('player.jpg')
pos = player.get_rect()

while True:
    for i in pygame.event.get():
       if i.type() == pygame.QUIT:
            sys.exit()
    screen.blit(bg,(0,0))
    screen.blit(player,(i,i))
    pygame.display.update()

这是我在运行它时遇到的错误:

Traceback(最近一次调用最后一次):
文件“C:/Users/Grounds Keeper Willy/Desktop/Python Code/test.py”,第 12 行,在
if i.type() == pygame.QUIT:
TypeError: 'int'对象不可调用

我发现了类似的问题,但答案表明问题也在于使用函数名作为变量,这不是我正在做的。我似乎无法弄清楚这里出了什么问题。

4

2 回答 2

5

它应该是:

if i.type == pygame.QUIT:

代替:

if i.type() == pygame.QUIT:

由于该类的type成员Event不是函数,因此您不需要/可以使用().

于 2012-08-06T08:55:51.883 回答
0

我试过这个,使用这个:

run = True
    while run:
        clock.tick(fps)
        for event in pyg.event.get():
            if event.type == pyg.QUIT():
                run = False

(将 pygame 导入为 pyg)

但我仍然收到这条消息:

文件“/home/ghensley/python/pygametutorial/main.py”,第 11 行,在 main if event.type == pyg.QUIT(): TypeError: 'int' object is not callable

于 2022-02-25T00:02:27.753 回答