[Allegro, C++] Tworzenie "ściany".
Ostatnio zmodyfikowano 2010-05-24 23:58
lemis.aryl Temat założony przez niniejszego użytkownika |
» 2010-05-19 10:48:28 Zrobiłem taki warunek i ściana nie przepuszcza kropki: if( kropka_x >= linia_x && kropka_x <=( linia_x + 190 ) && kropka_y >= linia_y && kropka_y <=( linia_y + 1 ) ) { } Chciałem tylko zapytać czy myślę w dobrym kierunku, czy powinienem jeszcze poszukać i pokombinować nad innym rozwiązaniem? Jak na razie kolizja działa ale nie wiem jak z tym będzie na dłuższą metę. |
|
DejaVu |
» 2010-05-19 12:05:11 Najwięcej nauczysz się na własnych błędach, więc po prostu próbuj. |
|
lemis.aryl Temat założony przez niniejszego użytkownika |
» 2010-05-19 12:43:00 Jeśli np. chcę zrobić ten labirynt, to muszę dla każdej ściany tworzyć nową bitmapę i dla każdej nowej bitmapy warunek, tak? |
|
DejaVu |
» 2010-05-19 12:48:06 Można tak, można inaczej - wiedza i zdobyte umiejętności decydują o tym jak rozwiązujemy problemy w programowaniu. |
|
dmx81 |
» 2010-05-24 23:58:26 a co, jesli prosta bedzie ukosna? musisz nad tym pomyslec - najlepiej miec swoja funkcje rysujaca prosta dla podanych punktow wg rownania prostej i sprawdzic, czy wyznacznik dla punktu przed i po ruchu ma rozne znaki - jesli tak, znaczy, ze linia zostala przekroczona - czyli doszlo do kolizji, jesli wyznacznik ma ten sam znak - znaczy sie, ze nie doszlo do przekroczenia linii - znak wyznacznika sprawdzisz np mnozac je wzajemnie przez siebie i jesli <0 wtedy kolizja, wyznacznik oczywiscie dla pkt A,B i twojego punktu przed ruchem, pozniej A,B i punktu po ruchu
proponuje takze sprawdzic o co w tym chodzi na wikipedii pod haslem rownanie prostej lub prosta
oczywiscie rysowana prosta nie jest idealna, bo przeskoki sa co 1 pixel, a idealna prosta miedzy 0 a 1 ma nieskonczenie wiele punktow, wiec trzeba dorzucic swoja tolerancje (jesli np punkt ma wartosc x 1.49 to bedzie sie swiecil pixel x=1, a jesli 1,51 to pixel x=2 - chociaz to tez zalezy od tego jak napiszesz funkcje rysujaca prosta, chyba ze uzyjesz z allegro line, ja napisalem swoja a do tego dorzucilem odbijanie sie pod odpowiednim katem, punkt porusza sie w wielokacie i odbija od scianek - niby prosto brzmi... a jest z tym nieco roboty - oczywiscie dla mniej wtajemniczonych, czyli takich jak ja, ale juz calkiem niezle wyglada, jak skoncze, to wrzuce kodzik ;) ) |
|
1 « 2 » |