Jump to content

Full screen aspect ratio -> jak to zrobić ?


Szelma

Recommended Posts

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.

Link to comment
Share on other sites

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.

Etharnion - 2D RPG

Szukam grafika chętnego do współpracy przy projekcie.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 :)

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...