На додаток до інших відповідей, ви можете зробити деякі заходи, щоб прискорити це, якщо ви хочете зробити трохи бухгалтерського обліку щодо "збору" купки пікселів у блоки "відомого подібного стану". Наприклад, ви могли б зберігати висоту найвищого рельєфу місцевості, тож ви можете вважати, що ракета нічого не вдарить, поки вона вище цього. Ви також можете зберігати висоту найнижчого "повітряного" простору, тож ви знатимете, що якщо ракета потрапить на таку висоту, вона, мабуть, щось вдарила (хоча це, можливо, найкраще використовувати в якості перевірки стану безпеки). Подальше від цього ви можете зберігати прямокутники, що представляють усі місцевості та інші прямокутники, які є все повітряними, але це може бути більшою роботою, ніж цінністю.
Зрештою, найкращим методом, мабуть, буде "зберігання висоти кожного стовпчика місцевості", а потім просто обчислення висоти ракети на кожному кроці її шляху. Я не можу розмовляти з більш сучасними іграми, але я вважаю, що коли ви зробили "печеру" на обгорілій Землі, місцевість над цією печерою впала прямо вниз, не залишаючи надвісів. Якщо ви хочете, щоб завіси були, роботи будуть трохи більше, але це буде продовженням цієї основної ідеї. (Підказка: спочатку довідайтесь основну ідею!)
Оскільки ваша місцевість, мабуть, абсолютно довільна, ярликів немає. Навіть якщо ви змусили свою місцевість бути сплайною чи щось подібне, це засмутиться, коли ви почнете її руйнувати, і тести на перехрестя ліній оциліндрів будуть ітеративними та не досконалими або вичерпними та безглуздо повільними для вашого типу проблем.