如何解决从pygame中的图像绘制精灵,内部错误
我正在尝试从 png 中绘制精灵,该 png 位于 doomman 文件夹中。我得到的错误是:
TypeError: add_internal() missing 1 required positional argument: 'group'
我是在 pygame 中绘制精灵的新手。这是怎么回事?
这是代码
import pygame
pygame.init()
screen = pygame.display.set_mode((640,480))
BLACK = (0,0)
WHITE = (255,255,255)
RED = (255,0)
class Sprite(pygame.sprite.Sprite):
def __init__(self,pos):
# Don't forget to call the __init__ method of the parent class.
super(Sprite,self).__init__()
self.image = pygame.image.load(demon)
all_sprites_list = pygame.sprite.Group()
all_sprites_list.add(Sprite)
demon = pygame.image.load("C:/programming/doomman/cacodemon.png").convert_alpha()
clock = pygame.time.Clock()
pygame.display.set_caption("Demon Dance")
carryOn = True
while carryOn == True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
carryOn=False
all_sprites_list.update()
pygame.display.flip()
clock.tick(60)
all_sprites_list.draw(screen)
解决方法
pygame.sprite.Group
管理 Sptrite 对象。您需要从 Sprite
类创建一个 Instance Objects 对象。此外,pygame.sprite.Sprite
对象需要具有 rect
属性。在 Group 中绘制 _Sprites 时从 pygame.sprite.Group.draw
请求此属性:
import pygame
pygame.init()
screen = pygame.display.set_mode((640,480))
BLACK = (0,0)
WHITE = (255,255,255)
RED = (255,0)
class Sprite(pygame.sprite.Sprite):
def __init__(self,pos):
super(Sprite,self).__init__()
self.image = demon
self.rect = self.image.get_rect(center = pos)
all_sprites_list = pygame.sprite.Group()
demon = pygame.image.load("C:/programming/doomman/cacodemon.png").convert_alpha()
my_sprite = Sprite((50,50))
all_sprites_list.add(my_sprite)
clock = pygame.time.Clock()
pygame.display.set_caption("Demon Dance")
carryOn = True
while carryOn == True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
carryOn=False
all_sprites_list.update()
pygame.display.flip()
clock.tick(60)
all_sprites_list.draw(screen)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。