有人能告诉我如何摆脱这个错误吗

眼睛游戏者

我正在从一门课程中学习 Python 中的 pygame,当我尝试初始化超类时,即pygame.sprite.Sprite我做错了。

请帮我。有人能告诉我如何初始化父类吗?

编辑 :

程序如下,我解释了:

#-*-coding:utf8;-*-
#qpy:pygame

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

WHITE =[255, 255, 255]
RED =[255, 0, 0]
GREEN =[0, 255, 0]
BLUE =[0, 0, 255]
BLACK =[0, 0, 0]

class Block(pygame.sprite.Sprite):
    def __init__(self,colour,width,height):
         super(pygame.sprite.Sprite()).__init__()
         self.image = pygame.Surface(width,height)
         self.image.fill(colour)
         self.rect = self.image.get_rect()

pygame.init()

size = [800,1250]
screen = pygame.display.set_mode(size)

all_sprite_list = pygame.sprite.Group()

block_list = pygame.sprite.Group()

for i in range (40):
    block = Block(BLACK,20,20)

    block.rect.x = random.randrange(size[0])
    block.rect.y = random.randrange(size[1])

    block_list.add(block)
    all_sprite_list.add(block)

player = Block(RED,20,20)   
all_sprite_list.add(player) 



clock = pygame.time.Clock()


while True:
    for ev in pygame.event.get():
        if ev.type == QUIT:
            pygame.quit()

    pos = pygame.mouse.get_pos()
    player.rect.x = pos[0]
    player.rect.y = pos[1]         

    hit_list = pygame.sprite.spritecollide(player,block_list,True)    
    all_sprite_list.draw(screen)       
    clock.tick(60)    
    pygame.display.flip()

这是错误的屏幕截图

类型错误:“模块”对象不可调用。

疯兔76

to 的第一个参数super()必须是类型而不是对象。Notepygame.sprite.Sprite()创建一个对象。

在这种情况下,典型的超类调用是

super(Block,self).__init__()

要不就

super().__init__()

python 文档9.5 中提供了更多信息分别继承super()


第一个参数pygame.Surface必须是一个包含表面宽度和高度的元组所以它必须是:

self.image = pygame.Surface(width,height)

self.image = pygame.Surface((width,height))  

修改构造函数Blocks如下,解决问题:

class Block(pygame.sprite.Sprite):
    def __init__(self,colour,width,height):
         super().__init__() # or: super(Block,self).__init__()
         self.image = pygame.Surface((width,height))
         self.image.fill(colour)
         self.rect = self.image.get_rect()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章