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 5372 25.12.2014, 16:15
Ostatni post: kikiw
  [c,winapi]-Access voliation reading location i problem z BITMAPFILEHEADER sfx 3 3701 12.08.2014, 16:11
Ostatni post: Darekg11
  winapi-taki sam tekst w kolejnych zakładkach sfx 0 3186 27.07.2014, 20:28
Ostatni post: sfx

Skocz do:


Wybrane wątki (WinApi c++ Kolizja)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [JavaScript] Znajdowanie przedziału czasu rafal12999 0 5029 10.12.2019 17:58
Ostatni post: rafal12999
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 19425 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 5017 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 12365 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 11904 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 12019 22.10.2019 17:48
Ostatni post: Szachista
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 12451 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 5394 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 33170 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 7920 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 12051 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 14071 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 13423 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 13644 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 15446 28.04.2019 19:31
Ostatni post: koneton