Начал было делать платформер по видео уроку, но тут вылезла ошибка в коде. На видео все работает!
Ошибка:
Traceback (most recent call last): File "G:/test/Python/platformer/platformer.py", line 75, in <module> sprite_group.draw(screen) TypeError: draw() missing 1 required positional argument: 'surface'
Код файла:
import pygame from Player import Player from Platforms import Platform SIZE = (640, 480) # Создаем окно window = pygame.display.set_mode(SIZE) # Создаем поверхность screen = pygame.Surface(SIZE) # Герой hero = Player(55, 55) left = right = False # Создание уровня level = [ '----------------', '- -', '- -', '- --- -', '- -', '- ---- -', '- -', '- -', '- -- -', '- -', '- -', '----------------', ] sprite_group = pygame.sprite.Group sprite_group.add(hero) platforms = [] x = 0 y = 0 for row in level: for col in row: if col == '-': pl = Platform(x, y) sprite_group.add(pl) platforms.append(pl) x += 40 y += 40 x = 0 # Игровой цикл done = True timer = pygame.time.Clock() while done: # управление событиями for e in pygame.event.get(): if e.type == pygame.QUIT: done = False if e.type == pygame.KEYDOWN: if e.key == pygame.K_LEFT: left = True if e.key == pygame.K_RIGHT: right = True if e.type == pygame.KEYUP: if e.key == pygame.K_LEFT: left = False if e.key == pygame.K_RIGHT: right = False # Закрашиваем поверхность screen.fill((10, 120, 10)) # Отображение героя hero.update(left, right) sprite_group.draw(screen) # Отображаем поверхность window.blit(screen, (0, 0)) # Обновляем окно pygame.display.flip() timer.tick(60)
Как я понимаю, не передан параметр, на чем рисовать.
Но вот же, я указывал:
sprite_group.draw(screen)
При этом:
SIZE = (640, 480) # Создаем поверхность screen = pygame.Surface(SIZE)
И на видео у человека то все работает!
Как так, что не так?
Помогите, люди добрые!
А то я сам только начал изучать python, но такими темпами не закончу.
Благодарю за внимание!