/
sibiskus
/
Drive_Studio
Обзор
Документация
Войти
/
sibiskus
/
Drive_Studio
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
controller/collision_manager.py
47 строк
2 KB
Snezha
ещё раз прошлась по всем файлам, где-то дописала вот эти мини документации, чтобы быстрее ориентироваться по проекту
23 июн 2026, 03:06
23 июн 2026, 03:06
12ea40b
Код
Авторство
О чём код?
import config from utils.uniform_grid import UniformGrid class CollisionManager: def __init__(self, cell_size=100): self.grid = UniformGrid(cell_size=cell_size) def rebuild_grid(self, obstacles, coins, fuels): """Очищает сетку и заново добавляет препятствия, монеты и топливо""" self.grid.clear() for obj in obstacles + coins + fuels: self.grid.insert(obj) def check_collisions(self, player, obstacles, coins, fuels): """Проверяет ближайшие к игроку объекты и возвращает результат столкновений""" player_rect = player.get_rect() nearby_objects = self.grid.retrieve(player) result = { "crashed": False, "coins_collected": 0, "fuel_collected": 0, "events": [] } for obj in nearby_objects: if obj in obstacles and player_rect.colliderect(obj.get_rect()): player.is_alive = False result["crashed"] = True result["events"].append("crash") return result for obj in nearby_objects: if obj in coins and player_rect.colliderect(obj.get_rect()): result["coins_collected"] += 1 result["events"].append("coin") coins.remove(obj) elif obj in fuels and player_rect.colliderect(obj.get_rect()): result["fuel_collected"] += 1 result["events"].append("fuel") player.add_fuel(config.FUEL_REFILL_VALUE) fuels.remove(obj) return result