Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

WinApi c++ Kolizja

#1
Ściana  WinApi c++ Kolizja
Witam mam problem z utworzeniem sensownie wyglądającej kolizji. Otóż "latają" po ekranie dwa obiekty o określonych współrzędnych X,Y. Z samymi współrzędnymi sobie radzę, ale obiekty mają bitmapy a bitmapy są większe niż 1 pixel. (Bitmapy o wielkości około 100x100) I tu moje pytanie jak taką kolizje utworzyć żeby zaistniała gdy bitmapa wjedzie na bitmapę.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#2
RE: WinApi c++ Kolizja
Zrobić tzw. detekcję kołową. Wyliczasz środek kwadratu, a później robisz odległość środka od krawędzi jako promień. Później tylko sprawdzasz, czy odległość między środkami jest większa od sumy promieni tych dwóch kwadratów. Jeśli będzie mniejsza, to znaczy, że na siebie najechały.
 System operacyjny: windows_seven Przeglądarka: firefox
#3
RE: WinApi c++ Kolizja
Dzięki wielkie.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: WinApi c++ Kolizja
http://wiki.gamedev.pl/Kolizje_mi%C4%99d...y%C5%BAnie
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: WinApi c++ Kolizja
Ew. możesz poszukać czegoś na temat "pixel-perfect collisions", w skrócie - na kołach lub prostokątach sprawdzać najpierw, czy w ogóle jest szansa, że kolidują, i jeżeli tak, to na zriobionych wcześniej bitmaskach sprawdzać czy się na siebie nakładają - tak będzie szybciej niż na samych bitmaskach.Oczko
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#6
RE: WinApi c++ Kolizja
Mam jeszcze jedno pytanie. Czy da się i ewentualnie jak policzyć odległość od 1pkt o 2 pkt np. po ukosie?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#7
RE: WinApi c++ Kolizja
Tw. pitagorasa. Na pewno się o tym uczyłeś.Oczko
 System operacyjny: windows_seven Przeglądarka: firefox
#8
RE: WinApi c++ Kolizja
a*a + b*b = c*c.
c - najdłuższy bok, przeciwprostokątny
a, b - boki przyprostokątne

;)
 System operacyjny: windows_xp_2003 Przeglądarka: opera
#9
RE: WinApi c++ Kolizja
int x=sqrt(a*a+b*b);
 System operacyjny: windows_seven Przeglądarka: chrome
#10
RE: WinApi c++ Kolizja
Dokładnie, wykorzystując twierdzenie Pitagorasa obliczysz odległość. Mając dwa punkty w układzie współrzędnych: A(ax, ay) i B(bx, by), odległość między nimi możesz obliczyć ze wzoru:
Kod:
// pseudokod, ^ oznacza potęgowanie, a nie xor ;)
odleglosc = sqrt( (bx - ax)^2 + (by - ay)^2 )
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (WinApi c++ Kolizja)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [C++ WinAPI] Kompresja bitmapy kikiw 0 5248 25.12.2014, 16:15
Ostatni post: kikiw
  [c,winapi]-Access voliation reading location i problem z BITMAPFILEHEADER sfx 3 3503 12.08.2014, 16:11
Ostatni post: Darekg11
  winapi-taki sam tekst w kolejnych zakładkach sfx 0 3084 27.07.2014, 20:28
Ostatni post: sfx

Skocz do:


Wybrane wątki (WinApi c++ Kolizja)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Spring framework – jakie strony polecacie do nauki? olek23 5 4139 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 2914 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 3308 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 12100 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 4463 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 2958 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 13962 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 6031 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 5111 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 6904 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 6654 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 6577 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 8662 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 3914 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 8193 21.04.2019 14:04
Ostatni post: Ajgor