微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

'pygame.Rect' 对象不可调用

如何解决'pygame.Rect' 对象不可调用

代码

import pygame,sys,time,random
from pygame.locals import *

def enemie():
    global speed,ball
    ball.y += speed
    if ball.y == 602:
        ball = pygame.Rect(random.randint(0,450),20,20)

def blast():
    global bl,blast
    blast.y = bl


def player_animation():
    global player_speed,playerx
    player.x = player_speed



pygame.init()
running = True

clock = pygame.time.Clock()

speed = 7
bl = 1
player_speed = 1



ball = pygame.Rect(random.randint(0,20)
player = pygame.Rect(250,450,50,50)
blast = pygame.Rect(300,20)
screen = pygame.display.set_mode((500,500))


while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
                running = False
    enemie()
    player_animation()
    blast()
  
    screen.fill((255,255,255)) #color

    
    pygame.draw.ellipse(screen,[255,0],ball)
    pygame.draw.ellipse(screen,[0,255],player)
    pygame.draw.ellipse(screen,blast)
    
    if ball.colliderect(player):
        pygame.quit()
        sys.exit()
        

    keys=pygame.key.get_pressed()
    if keys[K_LEFT] and player.x !=  -4 :
        player_speed -= 5

    if keys[K_RIGHT] and player.x !=  451:
        player_speed += 5

    if event.type == pygame.MOUSEBUTTONDOWN:
        bl += 5
    pygame.display.flip()
    
    clock.tick(30)
pygame.quit()

错误

line 54,in <module>
    blast()
TypeError: 'pygame.Rect' object is not callable

我正在尝试创建一些会移动的球。当我点击时,绿色的球或爆炸应该会移动, 错误是否意味着有一个 ) 或一个 ( 不属于?但我找不到我的错误......我以前遇到过这个错误,我不记得我是如何解决它的。什么是错误是什么意思?我该如何解决?提前致谢!

解决方法

您的全局 blast 变量 shadows blast 函数。当您调用 blast() 时,blast 不再定义为函数,而是一个 pygame.Rect。该错误告诉您不能像函数一样调用 Rect

更改其中之一的名称,以免它们发生冲突。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。