Как решить: TypeError: аргумент 1 должен быть pygame.Surface, а не builtin_function_or_method - PullRequest
0 голосов
/ 05 июня 2018
import pygame

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

pygame.init()

size = (800, 625)
screen = pygame.display.set_mode(size)

pygame.display.set_caption("Game of Ur")
Token = pygame.image.load("chip.png").convert
board = pygame.image.load("board.png").convert

done = False


clock = pygame.time.Clock()

while not done:

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

    screen.fill(WHITE)
    screen.blit(board,[0,0])

    pygame.display.flip()

    clock.tick(60)


pygame.quit()

Я получаю ошибку

Traceback (most recent call last):
  File "C:\Users\Ed\Documents\thonk\game.py", line 43, in <module>
  screen.blit(board,[0,0])
TypeError: argument 1 must be pygame.Surface, not builtin_function_or_method

Как мне это исправить?

1 Ответ

0 голосов
/ 05 июня 2018

Ошибка хорошая подсказка.board - это функция или метод.Смотря где его назначить,

board = pygame.image.load("board.png").convert

ах!Это метод, и вам нужно вызвать его, чтобы получить доску.Та же проблема с токеном.Простое исправление этих двух строк делает это

import pygame

BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

pygame.init()

size = (800, 625)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Game of Ur")
Token = pygame.image.load("chip.png").convert()
board = pygame.image.load("board.png").convert()
done = False
clock = pygame.time.Clock()

while not done:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

    screen.fill(WHITE)
    screen.blit(board,[0,0])
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...