AttributeError:'pygame.rect.Rect'对象没有属性'blit'

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

我正在学习pygame,我不明白如何解决这个问题 我认为问题源于以下几行:

screen = pygame.display.set_mode((552, 640)).fill((182, 210, 214))
button_y = 384
button_x = 10
for i in buttons:
    screen.blit(i, (button_x + 60*buttons.index(i), button_y))

出现错误:

File "D:\CalcGame\main.py", line 52, in <module>
    screen.blit(i, (button_x + 60*buttons.index(i), button_y))
AttributeError: 'pygame.rect.Rect' object has no attribute 'blit'

如何解决?

完整代码(不包括

import pygame
之类):

screen = pygame.display.set_mode((552, 640)).fill((182, 210, 214)) #1080, 2340
pygame.display.set_caption("CalcGame")
pygame.display.set_icon(pygame.image.load('images/CalcGameIcon.png'))

def text(size):
    return pygame.font.Font('Fonts\segoeprint_bold.ttf', size)

class Button:
    def __init__(self, symbol, buttonsprite=['Images/Button/Clicked.png','Images/Button/Not_clicked.png'], size=40, around=True, color=(0, 0, 0)):
    self = text(size).render(symbol, around, color)

number1 = Button("1")
number2 = Button("2")
number3 = Button("3")
number4 = Button("4")
number5 = Button("5")
number6 = Button("6")
number7 = Button("7")
number8 = Button("8")
number9 = Button("9")

plus = Button("+")
minus = Button("-")
multiply = Button("*")
divide = Button("/")

degconver = Button("^")
root = Button("√")
comma = Button(",")

buttons = [number1, number2, number3, number4, number5, number6,number7, number8, number9,
    plus, minus, multiply, divide,
    degconver, root, comma]


run = True
while run:

    pygame.display.update()


    button_y = 384
    button_x = 10
    for i in buttons:
        screen.blit(i, (button_x + 60*buttons.index(i), button_y))
    for i in pygame.event.get():
        if i.type == pygame.QUIT:
            pygame.quit()
            run = False
python python-3.x pygame game-development
1个回答
-1
投票

.fill((182, 210, 214))
返回类型为
Rect
的对象。
blit
Surface
的一种方法。

尝试:

screen = pygame.display.set_mode((552, 640))
screen.fill((182, 210, 214))

相反。

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