Помогите с python

Написал вот такой код. Пишет ошибку if prect.colliderect (el):

TypeError: Invalid rect, all 4 fields must be numeric

Такая ошибка произошла после того, как я хотел сделать бесконечную генерацию врагов (wr)
Помогите, кто знает, как исправить код


import pygame

clock = pygame.time.Clock()
pygame.init()
skr = pygame.display.set_mode((1000, 563)) #, flags=pygame.NOFRAME
pygame.display.set_caption('pixel game')

png = pygame.image.load('images/214717_wangwang_china_chinese_alibaba_icon.png').convert_alpha()
pygame.display.set_icon(png)

ps = 10
px = 150
py = 370

isj = False
jk = 10


bg = pygame.image.load('fonts/1678708864_bogatyr-club-p-fon-arkadi-foni-vkontakte-62.jpg').convert_alpha()
Wk = [pygame.image.load('2д персы/New Piskel (9).gif').convert_alpha(),
pygame.image.load('2д персы/New Piskel (8).gif').convert_alpha(),
]
wr = [pygame.image.load('2д персы/New Piskel (6).gif').convert_alpha(),
pygame.image.load('2д персы/New Piskel (7).gif').convert_alpha(),
]

elx = 620

wrlist = []


el = []

pac = 0

bg_su = pygame.mixer.Sound('sounds/Для игры (online-audio-converter.com).mp3')
bg_su.play(-1)


wrt = pygame.USEREVENT + 1
pygame.time.set_timer(wrt, 1000)

bg_x = 0
run = True
while run:


skr.blit(bg, (bg_x, 0))
skr.blit(bg, (bg_x + 1000, 0))
skr.blit(Wk[pac], (px, py))


prect = Wk[0].get_rect(topleft=(px, py))

if wrlist:
for el in wrlist:
skr.blit(wr[pac], el)
elx -= 10


if prect.colliderect (el):
print('Вы проирали')
k = pygame.key.get_pressed()
if k[pygame.K_s] and px > 1:
px -= ps
elif k[pygame.K_w] and px < 900:
px += ps

if not isj:
if k[pygame.K_SPACE]:
isj = True
else:
if jk >= -10:
if jk > 0:
py -= (jk ** 2) / 2
else:
py += (jk ** 2) / 2
jk -= 1
else:
isj = False
jk = 10


if pac == 1:
pac = 0
else:
pac += 1


bg_x -=2
if bg_x == -1000:
bg_x = 0


pygame.display.update()

for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
pygame.quit()
if event.type == wrt:
wrlist.append(wr[pac].get_rect(topleft=(620, 370)))


clock.tick(15)

0
Автор поста оценил этот комментарий

значение el в студию

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Друзья мои, я понял!!!! Я исправил!!!
if wrlist:
for el_rect in wrlist:
skr.blit(wr[pac], el_rect)
el_rect.x-= 10

Всё!!! Враги спавнятся и движутся)
1
Автор поста оценил этот комментарий
Друзья мои, я понял!!!! Я исправил!!!
if wrlist:
for el_rect in wrlist:
skr.blit(wr[pac], el_rect)
el_rect.x-= 10

Всё!!! Враги спавнятся и движутся)
0
Автор поста оценил этот комментарий

Chat gpt спроси. Вот что он ответил на твой пост

Проблема в вашем коде заключается в том, что вы используете переменную el в качестве списка координат прямоугольников элементов wr, а затем пытаетесь проверить столкновение prect.colliderect(el).

Однако метод colliderect ожидает, что переданный аргумент будет прямоугольником, а не списком. Вам нужно перебрать все элементы в списке wrlist и проверить столкновение с каждым из них.

Вот исправленный кусок кода:

python
Копировать код
if wrlist:
    for el_rect in wrlist:
        skr.blit(wr[pac], el_rect)
        elx -= 10

        if prect.colliderect(el_rect):
            print('Вы проиграли')
Здесь мы используем переменную el_rect, чтобы перебирать каждый прямоугольник в списке wrlist, а затем проверяем столкновение prect.colliderect(el_rect).

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Прогресс!! Враг спавнится, но не двигается
0
Автор поста оценил этот комментарий

что присвоено el?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Типо еl должно проверять наличие элементов в wrlist
показать ответы
0
Автор поста оценил этот комментарий

дебаж и смотри что присвоено, сравни с тем что должно быть присвоено

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Пытался заменить в неправильной строчке el на elx не получается, опять ошибка
показать ответы
0
Автор поста оценил этот комментарий

if prect.colliderect (el):

в el ошибка

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Это то понятно, но в чём ошибка то???
показать ответы
0
Автор поста оценил этот комментарий

а так понятнее?
TypeError: Неверный rect, все 4 поля должны быть числовыми

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я уже переводил. Мне это ничо не даёт
показать ответы
0
Автор поста оценил этот комментарий

TypeError: Invalid rect, all 4 fields must be numeric

иди с этим запросом в гугл

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Уже, ничего не нахожу
показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества