Jump to content

Archived

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

Szelma

Full screen aspect ratio -> jak to zrobić ?

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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
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 :)

Share this post


Link to post
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!

Share this post


Link to post
Share on other sites

×
×
  • Create New...