【解決方法】私が思う問題は、wall_group.draw(screen) にあります。 プログラムは私に「abstractgroup.draw() に必要な位置引数が 1 つありません: ‘surface’」と言い続けます。 私は何をしますか? 私のコードは次のとおりです。

プログラミングQA


Python
import pygame
import random
pygame.init()
clock = pygame.time.Clock()

screen = pygame.display.set_mode((1000,600))
pygame.display.set_caption("Flappy bird")

bird_image = pygame.image.load("FLAPPY.png")
wall_image = pygame.image.load("ENEMY.png")
bird_image = pygame.transform.scale(bird_image, (80,60))
bird_rect = bird_image.get_rect()
bird_rect.center= (300, 300)
bird_speed = 0
gravity = 0.5
jump = 1

wall_group = pygame.sprite.Group
spawn_wall_event = pygame.USEREVENT
pygame.time.set_timer(spawn_wall_event, 3000)

class Wall(pygame.sprite.Sprite):
    def __init__(self, pos, image ): 
          super().__init__()
          self.image = image
          self.rect = self.image.get_rect()
          self.rect.center = pos
    def update(self):
        self.rect.x-=10

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
               running = False
        if event.type == spawn_wall_event:
            wall=Wall((650, random.randint(0, 20)), wall_image)
            wall_group.add(wall)
    keys = pygame.key.get_pressed()
    if keys[pygame.K_SPACE]:
        bird_speed-=jump
    bird_speed+=gravity
    bird_rect.centery+=int(bird_speed)

    screen.fill((15,60,200))
    screen.blit(bird_image, bird_rect)
    wall_group.draw(screen)
    wall_group.update()

    pygame.display.flip()
    clock.tick(60)

私が試したこと:

コードを実行してみました。 しかし、それは私にエラーを与えました:AbstractGroup.draw() missing 1 required positional argument: ‘surface’

解決策 1

コードのどこでエラーが発生しているのかわかりません。

したがって、エラー メッセージから始めます。エラーが発生したファイルと、エラーが見つかった行番号が表示されます。 ほとんどのテキスト/コード エディタでは CTRL+G を使用して行番号に直接移動できるため、簡単に見つけることができます。

Python デバッガーを使用して、実行中のコードを確認します。 pdb — Python デバッガー — Python 3.11.4 ドキュメント[^]

エラーが発生した行にブレークポイントを設定し、関連するすべての変数を確認します。

申し訳ありませんが、それはできません。

コメント

タイトルとURLをコピーしました