Witam. Zawsze chciałem mieć takie kolizje jak w grach, czyli, że jak idę na ścianę pod kątem 30' to mogę iść dalej, z tym, że z mniejszą prędkością. Poszukałem trochę w necie i dowiedziałem się o QuadTree, przykład tutaj:

Szukałem też czegoś żebym zrozumiał o co w tym chodzi, ale nie za bardzo mi to wyszło. Czy ktoś byłby tak miły i przybliżył jak to działa, że nie zatrzymam się na ścianie jak nie będę szedł pod kątek 90' do niej? Chodzi mi na razie o 2D.

Druga sprawa to też kolizje, ale te prostsze na bazie samego prostokąta. Jak zrobić, żeby nie bawić się w rect.Top >= przeszkoda.Top itd. a za jednym zamachem wykryć kolizję i zareagować? Bo to się przyda, przy nie prostokątnych planszach (nie będę przecież chyba dzielił tego na małe prostokąty i sprawdzał każdego z osobna - a może tak się robi?), a nie chciałbym korzystać z kolizji per-pixel. Prosiłbym o pomoc w tych 2 kwestiach kogoś kto miał z tym jakąś styczność. Z góry wielce dziękuję :)