insighter, затем, что ты изнутри класса пытаешься обратиться к чему-то снаружи не зная где это. Иди почитай хотя бы основы ООП, а то видимо SOLID тяжко для тебя.
Ужас какой.... Это отвратительный код, подходящий только для одного случая, когда кнопка сразу на форме.
При этом нарушаются сразу с десяток SOLID принципов
Это странное мнение. В данном случае "композиция" ни как не идёт в противоречие с "наследованием". Здесь обычный сборный контейнер.
Сущность из других сущностей. Нет смысла наследовать человека от компании или наоборот.
Так что тут не именно "композиция", а простая инкапсуляция.
Т.е. персона имеет данные о компании. Объект компании создается внутри класса персоны и доступен для изменения сразу, без инициализации извне.
Стас Поваляев, в методе on_touch_move тебе нужно идти циклом по всем объектам и проверять на коллизии текущий (self) со всеми ними. И киви тут вообще не при чем. Я никогда его не использовал, но и так знаю как он работает. Потому что это базовые знания, применимые ко многим вещам.
Стас Поваляев, трассировка на процессоре выполняется секундами, а ещё более качественная минутами. То что ты там проверял - это простой быстрый рендер. Быстрая трассировка выполняется на видеокартах с поддержкой RTX
Стас Поваляев, ты даже основ не знаешь. Как ты вообще хочешь писать?
Нельзя просто внутри класса разместить исполняемый код. Когда он вызывается будет и кем?
Добавлять его нужно на событие перемещения объекта. Внутрь метода события