Я испортил цикл while pygame, потому что он находится внутри блока определения?

Мой код

Здравствуйте, в настоящее время я выполняю задание для класса и, похоже, не могу заставить свой код работать.

Цель этого задания состоит в том, чтобы неоднократно рисовать прямоугольники на экране, каждый из которых меньше предыдущего на 10 пикселей, а также находится на расстоянии 10 пикселей друг от друга. Предполагается повторять до тех пор, пока квадраты не станут слишком маленькими.

Да, я знаю, что pygame не импортируется должным образом. Это просто отдых на моем персональном компьютере, мой настоящий код находится в школе.

Я считаю, что сделал что-то не так с рисованием прямоугольника, так как ошибка говорит: «Прямоугольник не определен». Я новичок в кодировании, так что это, вероятно, очень простая ошибка, которую легко исправить.

Любая обратная связь будет оценена. Спасибо!

Вот код в текстовом формате:

import pygame
from pygame.locals import *

def drawSquares(window):
    # Create variables to keep track of size and position
    size = 100
    position = 0
    # Use a loop to draw squares until the size is too small
    while (size>0):
        pygame.draw.rect(window,(0,0,255),position, position, size, size)
        size -= 10
        position += size+10

person Ayumo    schedule 07.03.2021    source источник
comment
Какова точная ошибка и минимально воспроизводимый пример проблемы? Я не вижу этот код, вызывающий эту ошибку.   -  person Carcigenicate    schedule 07.03.2021
comment
@Rabbid76 Вы уверены, что это хорошее завершение? Я бы не стал ожидать того, что может показаться ошибкой имени из-за слишком большого количества аргументов.   -  person Carcigenicate    schedule 07.03.2021
comment
@Carcigenicate Я не понимаю, что ты имеешь в виду? Проблема заключается в рисовании прямоугольников. Как вы думаете, следует ли возобновить вопрос?   -  person Rabbid76    schedule 07.03.2021
comment
@ Rabbid76 Возможно, вы правы насчет закрытия. Я просто имел в виду, что не ожидал бы, что ошибка rect is notdefined по такой причине. У них тоже может быть ошибка ¯\_(ツ)_/¯.   -  person Carcigenicate    schedule 07.03.2021
comment
@Carcigenicate Я согласен, название не попадает в точку. Однако 4 ответа на дубликат охватывают проблему. Может быть, есть еще один вопрос, который можно добавить к дубликатам.   -  person Rabbid76    schedule 07.03.2021


Ответы (1)


Последний аргумент pygame.draw.rect — это кортеж с 4 компоненты (x, y, ширина, высота):

pygame.draw.rect(window,(0,0,255), position, position, size, size)

pygame.draw.rect(window,(0,0,255), (position, position, size, size))
person Rabbid76    schedule 07.03.2021