Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, Allegro5] Scrollowanie mapy

Ostatnio zmodyfikowano 2011-05-26 16:40
Autor Wiadomość
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
C/C++
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).
P-33486
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.
P-33487
SeaMonster131
Temat założony przez niniejszego użytkownika
» 2011-05-25 22:52:05
Jest :p Np:
C/C++
//Wielkość kafelka = 50;

mapx = 5000; //czyli przesunięcie o 2 kafeli
mysz.x = 0; //czyli początek ekranu

( 5000 + 0 ) / 50 = 100;

mapx = 15000; //6 kafelków
mysz.x = 100;

( 15000 + 100 ) / 50 = 302;

mapx = 50000; //20 kafelków
mysz.x = 500;

( 50000 + 500 ) / 50 = 1010;

Więc stwierdziłem tak:

(mysz.x / szerokosc_kafelka) + (mapx / szerokosc_okna);
P-33488
DejaVu
» 2011-05-25 23:56:11
Jakim cudem masz wartość 5000 dla mapx? :) Chcesz ją wyświetlać od setnego kafelka? :)
P-33489
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 :)
P-33500
1 « 2 »
Poprzednia strona Strona 2 z 2