Skocz do zawartości

[Views] Gdzie to wkleić, żeby działało?


Skorsis

Rekomendowane odpowiedzi

Mam rooma 2560x1920 (4:3) i chcę, żeby obraz się przycinał od góry i dołu oraz skalował zależnie od ekranu. Mam taki kod:

 

GML
dispH=round(display_get_height());

dispW=round(display_get_width());

view_wview[0]=2560;

view_hview[0]=(dispH/dispW)*2560;

view_xview[0]=0;

view_yview[0]=(1920-view_hview[0])/2;

 

view_wport[0]=dispW;

view_hport[0]=dispH;

view_xport[0]=0;

view_yport[0]=0;

 

Wrzuciłem to w objControl Draw GUI. Niestety nie działa, obraz jest czarny. Wie ktoś gdzie to powinno być i może co dodać do tego, żeby działało?

Odnośnik do komentarza
Udostępnij na innych stronach

Hmm... wrzuciłem w creation room, dodałem te funkcje, no i pokazało się, ale jest tylko kawałek obrazu i obraz zamiast się portować to wyświetla tylko kawałek rooma o rozmiarach displaya. Sprawdzam na Androidzie. Na windowsie jak dam np. dispH=round(display_get_height()/2) (to samo z width) to obraz i tak jest na cały ekran zamiast na pół. W sumie to nie wiem co się dzieje. GUI jest, pod spodem czarno, kawałek obrazu, po lewej jakieś żółte migające kreski. Na Androidzie zupełnie inaczej niż na Windowsie, jak znajdę rozwiązanie to dam znać.

Odnośnik do komentarza
Udostępnij na innych stronach

A dla Androida nie trzeba majstrować coś z surface? Kurde nie wiem jak to zrobić, jak wpiszę na sztywno w ustawieniach viewa dane dla mojego telefonu to działa jak trzeba, a z kodu nie chce załapać. Dodałem jeszcze to, ale nic to nie zmieniło:

GML
if(dispH>dispW) {

temp=dispH;

dispH=dispW;

dispW=temp;

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
var temp;

view_enabled[0] = true;

view_visible[0] = true;

dispH=round(display_get_height());

dispW=round(display_get_width());

if(dispH>dispW) {

temp=dispH;

dispH=dispW;

dispW=temp;

}

view_wview[0]=2560;

view_hview[0]=(dispH/dispW)*2560;

view_xview[0]=0;

view_yview[0]=(1920-view_hview[0])/2;

 

view_wport[0]=dispW;

view_hport[0]=dispH;

view_xport[0]=0;

view_yport[0]=0;

 

surface_resize(application_surface,dispW,dispH)

 

Tak działa, views muszą być enabled, a "view0 visible at start" musi być odznaczony

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ę...