![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Czy ma ktoś jakiś pomysł na generyczną metodę wykrywania czy dwa obiekty na canvas się stykają? Jak na razie to do głowy przyszło mi tylko jedno raczej niezadowalające rozwiązanie - sprawdzanie wzdłuż krawędzi, które zawodzi jednak kiedy obiekt nie jest prostokątem - np. ma kształt litery "z". Robię to tak:
Chciałbym uniknąć tworzenia kształtów z kolejnych prostokątów i testowania każdego z tych składowych, czy nie styka się z innym. Każda rada mile widziana ![]() Ten post edytował 230005 25.05.2010, 23:26:21 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem do jakich celów tego potrzebujesz. Najlepiej to rozwiązać od strony matematycznej(tj. nie sprawdzać kształtów już wyświetlonych ale analizować ich wzory matematyczne). Zawsze możesz również sprawdzać piksel po pikselu oba kształty.
Ten post edytował SHiP 26.05.2010, 11:30:38 -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie za bardzo rozumiem z tymi wzorami matematycznymi, albo może ty nie do końca mnie zrozumiałeś
![]() Ten post edytował 230005 26.05.2010, 12:06:58 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 697 Pomógł: 47 Dołączył: 19.12.2003 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
No to musisz wiedzieć, że w przypadku gier nie powinno się takich operacji wykonywać na grafice, bo jest to nieoptymalne.
Przechowuj aktualny stan mapy coś w stylu Kod 000000000000 000000000000 000000000000 000000000000 100000000000 110110110001 111011110010 1- zajęte pole 0 - puste pole I teraz w przypadku próby obrotu, nie sprawdzasz figur a jedynie to czy na mapie jest wolne miejsce aby przekręcić klocek w aktualnej pozycji. Jeśli jest, przekręcasz. Pozdrawiam -------------------- Warsztat: Kubuntu, PhpStorm, Opera
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 316 Pomógł: 36 Dołączył: 2.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
No dobra, spróbuję coś takiego zaimplementować, ale wciąż wygląda na to, że dla każdej figury test będzie wyglądał inaczej...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:47 |