Skocz do zawartości

"uszczypnięcie" do zoomowania w Androidzie


Rekomendowane odpowiedzi

Witam ponownie

 

Mam szybkie pytanie dotyczące "uszczypnięcia" do zoomowania w Androidzie. Zrobiłem sobie zoomowanie ekranu pod rolką w windowsie tak ze jak poruszę rolke w dół to ekran jest przybliżony a jak oddalę to ekran jest oddalany. Zoomowanie jest adekwatne do ustawionej pozycji kursora coś jak w Angry Birds ale mniejsza o to. Mam pytanko bo chciałbym zrobić to także w urządzeniach opartych na androidzie ale nie wiem jaki event zastosować?... znalazłem tylko device_get_tilt ale to jest odnośne tylko do przechyłu danego urządzenia. Może ktoś z Was zna jaki event zastosować bądź jaka instrukcja z czyta kod gdy "uszczypniecie" jest do środka i gdy "uszczypniecie" jest do środka.

Odnośnik do komentarza
Udostępnij na innych stronach

no właśnie z myszką ani z rolką od niej nie działa... myślałem ze jak zrobię konwersje na Androida to jakoś samo w locie przekonwertuje kod.. Dodam że klikniecie lewej myszy działa bez problemu, natomiast prawy guzik myszy działa jeżeli klikniemy szybko ekran dwa razy... co do rolki to nie mam pojęcia

Odnośnik do komentarza
Udostępnij na innych stronach

Event prawego przycisku myszy wykonywany jest gdy wykonasz podwójne tapnięcie. Scroll myszki to nie to samo co uszczypnięcie więc nie może tak działać. Jeżeli chcesz to teraz sam spróbować napisać to podam ci zasadę działania.

  • Sprawdź czy device_mouse_check_button(0, mb_left)= true
  • Sprawdź czy device_mouse_check_button(1, mb_left)= true
  • Zapisz do zmiennych device_mouse_raw_x(0), device_mouse_raw_y(0), device_mouse_raw_x(1), device_mouse_raw_y(1)
  • Sprawdź point_distance() tych zmiennych
  • Sprawdzaj czy point_distance(device_mouse_raw_x(0), device_mouse_raw_y(0), device_mouse_raw_x(1), device_mouse_raw_y(1)) jest mniejszy od tego zapisanego przed chwilą
  • Porównuj czy różni się o jakiś próg tolerancji (np 100px) żeby nie wyłapywało różnicy 1px.
  • Różnica pomiędzy dwoma point_distance() posłuży ci do dynamicznego zoomowania.
  • uważaj na view
Odnośnik do komentarza
Udostępnij na innych stronach

oj właśnie jak to mawiają że pod latarnią zawsze najciemniej :) )

 

ale mam pytanko skoro w podręczniku napisali ::

 

 

 

 

GM-----create..........

 

initial_w = view_wview[0];

initial_h = view_hview[0];

v_scale = 1;

v_dist = 0;

 

 

 

 

GM____step........

 

var mx0raw, my0raw, mx1raw, my1raw;

mx0raw = device_mouse_raw_x(0);

my0raw = device_mouse_raw_y(0);

mx1raw = device_mouse_raw_x(1);

my1raw = device_mouse_raw_y(1);

 

if device_mouse_check_button(1, mb_left)

{

if device_mouse_check_button_pressed(1, mb_left)

{

v_dist = point_distance(mx0raw, my0raw, mx1raw ,my1raw) * v_scale;

}

v_scale = v_dist / max(1, point_distance(mx0raw, my0raw, mx1raw, my1raw));

if v_scale < 0.5 v_scale = 0.5 else if v_scale > 1.5 v_scale = 1.5;

view_wview[0] = initial_w * v_scale;

view_hview[0] = initial_h * v_scale;

view_xview[0] = global.Player_x - (view_wview[0] / 2);

view_yview[0] = global.Player_y - (view_hview[0] / 2);

}

 

to może ktoś umie wytłumaczyć co to za zmienna global.Player_x oraz global.Player_y bo nic o niej nie wspomnieli i za bardzo nie wiem skąd ja wziąć. Pozatym reszta dobrze wytłumaczona.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...