Skocz do zawartości


Full screen aspect ratio -> jak to zrobić ?


5 odpowiedzi w tym temacie

#1 Szelma

    Nowy na forum

  • Użytkownicy
  • 3 Postów:

Napisano pią, 06 maj 2011 - 16:27

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.

#2 Adam27

    Pomocna dłoń

  • Super użytkownicy
  • 156 Postów:
  • Gadu-Gadu:20032942

Napisano pią, 06 maj 2011 - 17:12

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.

#3 Stelma

    Starszy bywalec

  • Super użytkownicy
  • 103 Postów:
  • Gadu-Gadu:4588140

Napisano pią, 06 maj 2011 - 18:37

Wiem że powinienem pw ale mi się nie chce tongue.gif

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.

#4 Szelma

    Nowy na forum

  • Użytkownicy
  • 3 Postów:

Napisano pią, 06 maj 2011 - 21:18

Cytat

Wiem że powinienem pw ale mi się nie chce tongue.gif

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 smile.gif

Pytanie pozostaje aktualne.

#5 Szelma

    Nowy na forum

  • Użytkownicy
  • 3 Postów:

Napisano pią, 06 maj 2011 - 21:19

Cytat

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 smile.gif

#6 xevil21

    xevil

  • Super użytkownicy
  • 521 Postów:
  • Gadu-Gadu:11909981

Napisano sob, 07 maj 2011 - 18:41

Cytat

Dziękuję, to wydaje się być odpowiedzią na moje drugie pytanie smile.gif


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!