[C++, Allegro5] Scrollowanie mapy
Ostatnio zmodyfikowano 2011-05-26 16:40
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-25 22:44:03 Sorry, ale sie pogubiłem. To: ( mapx + mysz.x ) / sz_kaf; czyli PolozenieMyszyNaMapieOsX = PrzesuniecieMapyX + MyszX; KafelekX = PolozenieMyszyNaMapieOsX / SzerokoscKafelka; Nie działa, ponieważ daje olbrzymie wyniki typu 200, 600 itd... a powinno max 40 (bo taka duża jest tablica). |
|
DejaVu |
» 2011-05-25 22:46:05 Weź kartkę, podstaw do tego wzoru teoretyczne wartości liczbowe pod mapx i myszx. Nie jest możliwe uzyskanie wyniku takiego o jakim mówisz podając wartości w rozsądnych granicach. |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-25 22:52:05 Jest :p Np:
mapx = 5000; mysz.x = 0;
( 5000 + 0 ) / 50 = 100;
mapx = 15000; mysz.x = 100;
( 15000 + 100 ) / 50 = 302;
mapx = 50000; mysz.x = 500;
( 50000 + 500 ) / 50 = 1010;
Więc stwierdziłem tak: (mysz.x / szerokosc_kafelka) + (mapx / szerokosc_okna); |
|
DejaVu |
» 2011-05-25 23:56:11 Jakim cudem masz wartość 5000 dla mapx? :) Chcesz ją wyświetlać od setnego kafelka? :) |
|
SeaMonster131 Temat założony przez niniejszego użytkownika |
» 2011-05-26 16:40:45 No tzn spr jak to jest, i wychodzi na to, że 1 kafelek to 2500 mapx. Nie wiem do końca dlaczego, ale tak jest :) Wszystko mi działa, tylko te nieszczęsne przewijanie mapy... :) Może spakuje program *.exe i podeśle jak to wygląda? # Dobra, UDAŁO SIĘ :) Wczoraj jak sie myłem (haha :p) narodził się o to taki pomysł: ( mysz.x / sz_kaf ) +(( mapx / sz_kaf ) / sz_kaf ) Czyli mapx dzielę przez szerokość kafelka, i nastepnie jeszcze raz przez szerokość kafelka. Naprawde nie wiem dlaczego tak trzeba, ale ważne że działa (pewnie później dojde dlaczego tak jest :p). To Wielkie dzięki wszystkim za pomoc :) |
|
1 « 2 » |