starter Temat założony przez niniejszego użytkownika |
Stykanie się obiektów w SFML » 2012-07-17 19:42:43 Witam, od jakiegoś czasu pracuje nad prostymi programami korzystającymi z biblioteki SFML. W większości z nich potrzebuje wiedzieć czy dwa kształty (sf::Shape, nie zawsze takie same, często koło i inny wielokąt) stykają się. W tym celu tworze długie tablice przechowujące współrzędne, oraz długie warunki z tymi współrzędnymi. Zastanawiam się jak to uprościć. W grę wchodzi np. jeden, symetryczny w osi Y, 10-kąt, oraz 50 kół. Chce sprawdzić czy któreś z kół styka się z wielokątem. Każdy kształt startuje z innej współrzędnej, koła przesuwają się do końca ekranu i cofają na pozycje startową, a wielokątem się porusza przy pomocy strzałek.
Na razie mam 900 linijek samych tablic ze współrzędnymi.
Proszę o pomoc w dość prostym języku, gdyż programuje dopiero od 3-4 mies. Dzięki! :-)
P.S. Korzystam z SFML 1.6 i Code::Blocks 10.05 |
|
SeaMonster131 |
» 2012-07-18 10:50:26 Na razie mam 900 linijek samych tablic ze współrzędnymi. |
o.O Ogólnie wygląda to np tak: for( int i = 0; i < ilosc_kol; i++ ) { if( kolizja( jedenObiekt, kolo[ i ] ) ) KOLIZJA; }
ilosc_kol to ilość obiektów (tych kół), kolo[i] to konkretny obiekt (koło), jedenObiekt to ten 10 kąt. |
|
m4tx |
» 2012-07-18 10:53:43 Na razie mam 900 linijek samych tablic ze współrzędnymi. |
Może rozważ przechowywanie tego w pliku? Albo - jeśli to regularne kształty takie jak np. koło - generuj te współrzędne? |
|
mati1qazxsw2 |
» 2012-07-18 11:45:58 od jakiegoś czasu pracuje nad prostymi programami korzystającymi z biblioteki SFML. |
Na razie mam 900 linijek samych tablic ze współrzędnymi. |
Proszę o pomoc w dość prostym języku, gdyż programuje dopiero od 3-4 mies. |
Waść skończ i wstydu oszczędź. |
|
starter Temat założony przez niniejszego użytkownika |
Ogólnie wygląda to np tak: » 2012-07-18 11:52:00 A co oznacza w ifie "kolizja"? To ma być funkcja zadeklarowana w programie, czy funkcja dostepna w bibliotekach SFML? |
|
mati1qazxsw2 |
» 2012-07-18 11:54:37 Oznacz to, że wywoływana jest funkcja, która zwraca, gdy kolizja, true lub false, gdy jej nie ma.
#edit Pomyśl, od kiedy sfml jest po polsku. |
|
starter Temat założony przez niniejszego użytkownika |
» 2012-07-18 12:00:19 Sory, teraz już kumam.
|
|
SeaMonster131 |
» 2012-07-18 13:54:40 Tak, dokładnie. W ten sposób pozbędziesz się 900 linijek współrzędnych. |
|
« 1 » 2 |