1
import pygame, PygAnimation
screen = pygame.display.set_mode((500,500))
class Player(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = PygAnimation([("png/Attack__000.png",.08), ("png/Attack__001.png",.08),("png/Attack__002.png",.08),
("png/Attack__003.png",.08),("png/Attack__004.png",.08),("png/Attack__005.png",.08),],True)
def update(self):
self.image.play()
self.mask = pygame.mask.from_surface(self.image)
def draw(self):
self.image.blit(screen,(100,100))
p = Player()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((255,255,255))
p.draw()
p.update()
pygame.display.update()
マスクを取得しようとするとエラーが発生しますが、引数1はpygame.surfaceであり、pyganimationでなければなりません。 私はマスクを得るために多くの方法を試してみましたが、トレースバックは、あなたがpygame.mask.from_surface
にpygame.Surface
を渡すために持っていると言うが、self.image
はPygAnimation
対象でない表面であるため、すべての努力が無駄pyganimからマスクを取得できません
スプライトグループでPlayerスプライトを使用することはできません。その 'self.image'属性は' pygame.Surface'でなければならないと思いますので、アニメーションを 'self.animation'として保存してからアップデートします'update'メソッドのスプライトの' self.image'です。 – skrx
ありがとうございました。うまく働いた – PopeSkinnyprograms
あなたは大歓迎です。 upvoteして答えを受け入れる、それはあなたにもいくつかのポイントを与えるでしょう。 – skrx