Skocz do zawartości
Zaloguj się, aby obserwować  
Szelma

Full screen aspect ratio -> jak to zrobić ?

Polecane posty

Witam forumowiczów,

 

Jestem początkującym więc proszę o wyrozumiałość.

 

Problem:

Tworzę mini grę w SDL 1.3 dla Windows i natknąłem się na problem związany z wyświetlaniem grafiki dla różnych wielkości/typów ekranu.

Do tej pory tworzyłem grafikę na ekranie typu kwadrat (4:3), po uruchomieniu gry na ekranie typu wide (16:9 lub 16:10) mam efekt źle dobranych

proporcji. Czyli ogólnie mówiąc obraz jest zazwyczaj nienaturalnie rozciągnięty. Problem jest widoczny w momencie wybrania opcji full screen.

 

Moje pytania:

1. Jakie istnieją rozwiązania powyższego problemu ? Zaznaczę iż chciałbym uniknąć przycinania grafiki względem ekranu.

2. Czy istnieje możliwość wykrycia typu ekranu ? Np. czy użytkownik używa 4:3, 16:9. Czy muszę na sztywno wstawić opcję przełącz na dany typ w menu opcji ?

 

 

Dziękuję i pozdrawiam.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli gra ma być na Windows, to możesz użyć takiej sprytnej funkcji z WinAPI do pobrania rozmiarów ekranu:

KODint width = GetSystemMetrics(SM_CXMAXIMIZED), height = GetSystemMetrics(SM_CYMAXIMIZED);

 

Stąd już niedaleko do wyznaczenia proporcji ekranu i dostosowania do nich swojej gry.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wiem że powinienem pw ale mi się nie chce :P

 

Mogę prosić autora tematu o zmiane nick'a ;> i kwadrat nie może mieć proporcji 4:3, tam zawsze jest 1:1.

 

Jakby co to każdy kwadrat jest prostokątem ale nie każdy prostokąt kwadratem.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wiem że powinienem pw ale mi się nie chce :P

 

Mogę prosić autora tematu o zmiane nick'a ;> i kwadrat nie może mieć proporcji 4:3, tam zawsze jest 1:1.

 

Jakby co to każdy kwadrat jest prostokątem ale nie każdy prostokąt kwadratem.

 

 

Masz rację. Pisząc kwadrat miałem na myśli "standardowy" niegdyś monitor -> faktycznie jest prostokątem :)

 

Pytanie pozostaje aktualne.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Jeżeli gra ma być na Windows, to możesz użyć takiej sprytnej funkcji z WinAPI do pobrania rozmiarów ekranu:

KOD

int width = GetSystemMetrics(SM_CXMAXIMIZED), height = GetSystemMetrics(SM_CYMAXIMIZED);

 

Stąd już niedaleko do wyznaczenia proporcji ekranu i dostosowania do nich swojej gry.

 

 

 

Dziękuję, to wydaje się być odpowiedzią na moje drugie pytanie :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dziękuję, to wydaje się być odpowiedzią na moje drugie pytanie :)

 

Witam.

 

Ten problem jest bardziej złożony, ponieważ każdy może w dowolnym momencie przełączyć monitor 16:9 w tryb 4:3... Itp...

 

Pozdrawiam!

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

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

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×