|
|||||||
| Zarejestruj się | FAQ | Lista użytkowników | Kalendarz | Szukaj | Dzisiejsze posty | Zaznacz Wszystkie Fora jako Przeczytane |
| Matematyka i fizyka w zastosowaniach Algorytmy, ciekawe funkcje, zasoby oraz problemy z ich implementacją i pisaniem. |
![]() |
|
|
Narzędzia wątku | Wygląd |
|
|
#1 |
|
przyklejony do klawiatury
Zarejestrowany: Feb 2007
Skąd: 3miasto
Postów: 763
|
Witajcie, mam dosyć ciekawy problem do rozwiązania.
otóż mam planszę: http://adamborowski.pl/izo.png jak widać, plansza składa się z segmentów plansza się porusza wzdłuż lini x=5/8*y tu akurat chodzi o planszę - rzut izometryczny ulicy pod kątem - kamera porusza się w górę i w dół ulicy - zatem plansze muszą się poruszać o dx =speed oraz dy=5/8*speed i teraz wszytko gra, jeśli segmenty są równe. problem jest jeśli segmenty mają różną długość bo jeśli poruszamy się o speed=5 to dy=5 a dx=3.125 pozycja x musi zostać zaokrąglona. problem widać ma złączeniu segmentów podczas przesuwania planszy - na złączeniu widać, jak plansze są ruchome w poziomie względem siebie: http://adamborowski.pl/test2.html nie ma problemu, jeśli różnice odległości w pionie między segmentami są wielokrotnościami liczby 8 czyli pionowej składowej wektora przesunięcia. problem jest, by umiejętnie zaokrąglić x w zależności od y mod 8
__________________
Notebook ::: GeForce 9600 GT 512MB WXGA+ ::: Intel Core 2 Duo T9400 Penryn 2.53 GHz / 6MB L2 Cache / FSB 1066 MHz ::: Kingston 3GB SO-DIMM DDR2 800 MHz ::: 320 GB 2,5'' 7200 RPM SATA |
|
|
|
|
Advertisement
|
|
|
|
#2 |
|
przyklejony do klawiatury
Zarejestrowany: Feb 2007
Skąd: 3miasto
Postów: 763
|
// jedyne rozwiązanie jakie mi na myśl przyszło to zapamiętać równe odległości miedzy segmentami, a w przesuwaniu - przesuwać pierwsze, a reszte ustawiać w zapamiętanej kolejności...
ale wciąż czekam na propozycję zaokrąglenia... ![]()
__________________
Notebook ::: GeForce 9600 GT 512MB WXGA+ ::: Intel Core 2 Duo T9400 Penryn 2.53 GHz / 6MB L2 Cache / FSB 1066 MHz ::: Kingston 3GB SO-DIMM DDR2 800 MHz ::: 320 GB 2,5'' 7200 RPM SATA |
|
|
|
|
|
#3 |
|
jeszcze nie wie, co to Forum
Zarejestrowany: Jan 2008
Postów: 9
|
Jezeli dobrze pamietam to flash player przelicza wspolrzedne jako double, a potem je zaokragla inaczej "straszne rzeczy" by sie dzialy przy poruszaniu grup. To moze sprobuj przeliczyc na Number a potem przypisac tak wyliczone koordynaty
|
|
|
|
|
|
#4 |
|
wrzuca wyższy bieg
Zarejestrowany: Feb 2009
Postów: 244
|
zrób funkcje ktora znajduje coś jak math. floor/ceil/round ktora szuka najblizszej liczby calkowitej ktorej reszta z dzielenia (modulo - % ) przez 8 == 0. ?
__________________
http://cannons.pl dynamiczna gra online |
|
|
|
|
|
#5 |
|
jeszcze nie wie, co to Forum
Zarejestrowany: Dec 2002
Postów: 10
|
Ustaw prędkość vy=8 i vx=5
. Wtedy całość będzie się poruszać po pełnych pixelach. Nie będziesz musiał nic zaokrąglać. |
|
|
|
|
|
#6 |
|
przyklejony do klawiatury
Zarejestrowany: Feb 2007
Skąd: 3miasto
Postów: 763
|
hehe zabiłeś mnie
prędkość musi byc różna...
__________________
Notebook ::: GeForce 9600 GT 512MB WXGA+ ::: Intel Core 2 Duo T9400 Penryn 2.53 GHz / 6MB L2 Cache / FSB 1066 MHz ::: Kingston 3GB SO-DIMM DDR2 800 MHz ::: 320 GB 2,5'' 7200 RPM SATA |
|
|
|