无效的 rectstyle 对象[已关闭]

问题描述 投票:0回答:1

我正在遵循教程,但似乎找不到我做错了什么。我尝试了多次,同时更改矩形的值,但无济于事。

import pygame

width = 500
height = 500
win = pygame.display.set_mode((width, height))
pygame.display.set_caption("Client")

clientNumber = 0

class Player():
    def __init__(self, x, y, width, height, color):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.color = color
        self.rect = (x,y,width,height)
        self.vel = 3

    def draw(self, win):
        pygame.draw.rect(win, self.color, self.rect)

    def move(self):
        keys = pygame.key.get_pressed()

        if keys[pygame.K_LEFT]:
            self.x -= self.vel

        if keys[pygame.K_RIGHT]:
            self.x += self.vel

        if keys[pygame.K_UP]:
            self.y -= self.vel

        if keys[pygame.K_DOWN]:
            self.y += self.vel


def redrawWindow(win, player):
    win.fill(255, 255, 255)
    player.draw(win)
    pygame.display.update()



def main():
    run = True
    p = Player(50, 50, 100, 100, (0, 255, 0))
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                pygame.quit()
        p.move()
        redrawWindow(win, p)

main()

我将教程复制到了T,但这是一个相当旧的视频,所以我不知道这是否是对软件的更改。

python object pygame
1个回答
0
投票

看起来您只是忘记了“win.fill()”函数的一组括号。而不是:

win.fill(255, 255, 255)

该计划需要:

win.fill((255, 255, 255))

该函数实际上需要一个三色元组值。

当我进行更改时,窗口出现了。

© www.soinside.com 2019 - 2024. All rights reserved.