, но проблема в том, что мне все еще нужно пройтись по каждой из этих слизей, чтобы увидеть, нет ли их хитбокса в прямоугольнике экрана после перемещения игрока,
Цикл по некоторые слизи, когда игрок двигается, нормальны или скорее приемлемы, но циклически проходить через все слизи нет.
Вы, вероятно, должны поддерживать структуру, в которой вы знаете для каждой области плиток врагов, которые присутствуют на.
Область плиток должна собирать определенное количество плиток, но будьте осторожны, вы должны найти / отрегулировать ее размер, чтобы сделать его не слишком маленьким (вы теряете к этому интерес, так как вы должны осмотреть многие из них), а также не слишком большим (Вы будете зациклены на многих врагах, которые могут быть слишком далеко).
Общая идея заключается в том, чтобы проверять присутствие противника только на наличие плитки рядом с игроком.Такая структура, как Map<TilesZone, List<Enemy>>
, может иметь смысл или, возможно, TreeMap<TilesZone, List<Enemy>>
, чтобы воспользоваться интерфейсом NavigableMap
, который может быть полезен в вашем случае использования.