На самом деле @Nammari прав, у вас, вероятно, есть петля внутри вашего двигателя, которая перемещает спрайтов, что-то, что движок имитирует микрообороты: все спрайты движутся со своей скоростью.
Внутри этого цикла вы простонужно проверять столкновения и удалять ненужные спрайты.
Все это должно происходить в классе, отдельном от самого действия.
Тем не менее, ваш вопрос также имеет более глубокий интерес, если вы хотите сказать своемуактивность (на ваш взгляд), что произошло какое-то столкновение (например, увеличить счетчик столкновений, заставить экран мигать, что угодно).
И, конечно, это не очевидный вопрос, и на самом деле это хорошая идея, чтобы задаться вопросом, как это сделатьэто аккуратно и аккуратно.
Лучший ответ: вы войдете в новый мир: архитектура программного обеспечения.;) Да, это больше не о «кодировании», а о чистых способах сделать это (и о красоте и искусстве, но это может быть более философским вопросом на самом деле).
В этом случае то, что вы должны сделать, - это создать наблюдаемый шаблон проектирования наблюдателя:
- ваш игровой движок (класс, отвечающий за перемещение спрайтов, зная «правила»)) должен стать источником событий
- вы должны определить интерфейс для ваших "слушателей игры", на этом этапе он может иметь единственный метод: обнаружение столкновения.
- ваш движок должениметь список слушателей с сильной инкапсуляцией и двумя открытыми методами для добавления и удаления слушателей.
- он также должен иметь некоторый закрытый / защищенный метод для запуска события: он проходит по всем зарегистрированным слушателям и вызывает их «столкновение»обнаружено "метод.
- , затем создайте небольшой внутренний класс в вашем представлении, реализуя интерфейс слушателя.Instanciate и зарегистрируйте его среди двигателя.
Это основная идея. Здесь - хороший вводный пример для всего этого.