繁体   English   中英

缺少 1 个必需的位置参数:“屏幕”

[英]missing 1 required positional argument: 'screen'

尝试用 pygame 制作跳棋游戏。 我想在我的 Board 类中调用一个函数 draw_board 来绘制板,但出现错误。

类型错误:draw_board() 缺少 1 个必需的位置参数:“屏幕”

主文件

import pygame
from checkers.constants import HEIGHT, WIDTH
from checkers.board import Board


FPS = 60

Screen = pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption('Checkers')

def main():    
    running = True
    clock = pygame.time.Clock()

    while running:
        clock.tick(FPS)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
            if event.type == pygame.MOUSEBUTTONDOWN:
                print("click")

        Board.draw_Board(Screen)
        pygame.display.update()
        
    pygame.quit()

main()

板子.py

import pygame
from .constants import RED, BLACK, COLS, ROWS, TILE_SIZE

class Board:
    def __init__(self):
        self.board = []
        self.selected_piece = None
        self.red_left = self.white = 12
        self.red_kings = self.white_kings = 0
    
    def draw_board(self, screen):
        screen.fill(BLACK)
        for row in range(ROWS):
            for col in range(row % 2, ROWS, 2):
                pygame.draw.rect(screen, RED, (row * TILE_SIZE, col * TILE_SIZE))

您似乎没有提供准确的代码:您没有在发布的代码中的任何地方调用draw_board 但是,您确实有条线; 大写可能是一个错字:

    Board.draw_Board(Screen)

我认为您混淆了调用实例方法和类方法。 您已尝试通过类调用实例方法。 Board.draw_board通过类调用它,这意味着您必须在括号内提供两个参数。 您的代码仅提供一个。

调用draw_board的预期方法是作为实例方法,例如

game_board = Board()
game_board.draw_board(Screen)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM