Nano Hash - криптовалюты, майнинг, программирование

прямое столкновение со списком прямоугольников

У меня есть код player_rect.colliderect(tile_rects):, где player_rect — это один Rect, а tile_rects — это список Rect.
Я получаю сообщение об ошибке `builtins.TypeError:

Аргумент должен быть прямоугольным объектом

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

Я также только что узнал, что когда я переключаю позиции tile_rects и player_rect, вместо этого получаю ошибку

встроенные.AttributeError: объект «список» не имеет атрибута «коллидерект»

Мой вопрос: как я могу изменить свой код, чтобы я мог проверять наличие коллизий с прямоугольником и списком прямоугольников?

03.04.2020

Ответы:


1

Используйте pygame.Rect.collidelist, чтобы проверить, сталкивается ли прямоугольник с другим списка прямоугольников.

collidelist:

Проверьте, сталкивается ли прямоугольник с каким-либо в последовательности прямоугольников. Возвращается индекс первого найденного столкновения. Если коллизий не обнаружено, возвращается индекс -1.

if player_rect.colliderect(tile_rects) >= 0:
    # [...]
03.04.2020

2

вы можете использовать цикл for:

for t in tile_rects:
    player_rect.colliderect(t)

если вы хотите проверить любое столкновение, вы можете использовать:

has_colide = any(player_rect.colliderect(t) for t in tile_rects)
03.04.2020
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..