Форум программистов, компьютерный форум, киберфорум
Python: PyGame
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.10.2021
Сообщений: 8

Столкновение объектов

15.01.2022, 18:22. Показов 3158. Ответов 2

Студворк — интернет-сервис помощи студентам
мне нужно чтобы при столкновении ( наезда ) одного прямоугольника - Man, на другой прямоугольник - Vec, прямоугольник Vec исчезал (т.е. kill() ) насколько я знаю есть colliderect(), но я не знаю как его использовать. Подскажите пожалуйста, что у меня не правильно, или как он вообще работает.
Python
1
2
3
4
5
6
7
man = pygame.draw.rect(screen, color2, (10, 10, 12, 12), 10)
vec = pygame.draw.rect(screen, color3, (50, 50, 9, 9), 5)
 
 
def draw3(screen, man, vec):
    if pygame.Rect.colliderect(man, vec) is True:
        vec.kill()
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2022, 18:22
Ответы с готовыми решениями:

Прорисовка и столкновение в Pygame
Всем доброго времени суток. Сразу к сути: есть игрок, есть враг, они сталкиваются - программа закрывается, все работает. Но я никак не могу...

Почему не работает столкновение с птицей в коде
import pygame import random pygame.init() display_width = 800 display_height = 600 display =...

Обработать столкновение объектов
Tkinter, два класса, шевелятся, надо обработать столкновение объектов этого класса. Как вычислить их координаты и удалить только...

2
2 / 2 / 1
Регистрация: 18.02.2020
Сообщений: 53
16.01.2022, 14:46
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import pygame
import random
 
 
class Rect(pygame.sprite.Sprite):
    image = pygame.Surface((30, 30))
 
    def __init__(self, pos):
        super().__init__()
        self.image = Rect.image
        self.image.fill((random.randint(0, 255), random.randint(
            0, 255), random.randint(0, 255)))
        self.rect = self.image.get_rect()
        self.rect.x = pos[0]
        self.rect.y = pos[1]
        self.mask = pygame.mask.from_surface(self.image)
 
    def update(self, group_of_rect):
        if pygame.sprite.spritecollideany(self, group_of_rect) is not None \
                and pygame.sprite.spritecollideany(self, group_of_rect) is not self:
            self.kill()
 
 
pygame.init()
screen = pygame.display.set_mode((500, 500))
screen.fill("black")
running = True
group_of_rect = pygame.sprite.Group()
while running:
    screen.fill("black")
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        if event.type == pygame.MOUSEBUTTONDOWN:
            group_of_rect.add(Rect(event.pos))
    group_of_rect.update(group_of_rect)
    group_of_rect.draw(screen)
    pygame.display.flip()
 
pygame.quit()
Добавлено через 3 минуты
.kill() удаляет объект, насколько я понимаю. Т.е. удаляет его вообще отовсюду, из всех групп, соответственно он больше не отрисовывается)
0
17.01.2022, 11:27

Не по теме:

Kot170, зачем дважды вызывать функцию pygame.sprite.spritecollideany?
Я бы ничего не сказал если бы это были простые расчеты, но в графике где важен каждый ФПС, извольте.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2022, 11:27
Помогаю со студенческими работами здесь

Столкновение объектов
Объекты не сталкиваются вообще никак. по Z находятся на одной линии, у обоих rigidbody и коллайдеры с триггерами стоят, а все равно...

Столкновение объектов
Нужна помощь по столкновению. Нашол код столкновения в инете, и вставил в свой код. Столкновение работает как бы, но если два препядствия...

Столкновение объектов
У меня есть прямоугольник, который всегда движется с верху в низ, то есть когда дошел до низу начинает свое движение заново. Так же у меня...

Столкновение объектов
Собираюсь писать игру на SDL. В ней придется обрабатывать столкновения произвольных объектов. Меня интересует не физика, а именно как...

Столкновение объектов
Не получается запрограммировать столкновение двух объектов. Хочется решить самую простую задачу чтобы разобраться в принципе реализации...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru