Pygame ile farklı çözünürlüklerde çalışma

Pygame ile yaptığım oyunda tam ekrandayken arka plan resimleri farklı monitörlerde ekranı tam kaplamıyor. Bazı bölgeler siyah görünüyor. Mesela oyunu geliştirdiğim monitör 1280x800, televizyon ise 1920x1080px. Televizyona pc yi bağlayıp oyunu açınca görüntü kayıyor. Oyunu farklı çözünürlüklere nasıl optimize edebilirim?

Birden fazla cozunurluge optimize edemezsin.

Degisik cozunurluklerde de duzgun gozukmesini istiyorsan yapilacak bir cok sey var. Secilmis cevapla baslayabilirsin. Her seyi w'ya cizmek lazim.

2 Beğeni

Genel olarak monitör çözünürlüğüne göre görsellerin boyutlarıyla oynayarak çözmüşler sorunu. Sağ olun cevabınız için.

Tum ekranin boyutuyla oynayan cozumleri daha cok sevdim.

Baska bir cozum de ekran koordinatlarini 0–1 belirleyip oyle calismak. Fakat dinamik konumlandirma kodu yazmazsan* yine sadece ayni aspect ratio’da calisiyor.


*: Imaji “saga yapistir” yerine “0.95’e koy” dersen sadece imajin genisligi 0.05 ve sag kenarin X koordinati 1.0 ise duzgun gozukuyor.

1 Beğeni

Bu olay beni baya bir uğraştıracağa benziyor. Son zamanlarda işlerim yoğun. Bundan ötürü attığınız yazıya göz ucuyla bakabildim. Acaba bu işi diğer oyun motorlarında nasıl hallediyorlar :disappointed:. Ayrıca dinamik konunlandırma kodu olarak bahsettiğiniz şey nedir ? Farklı aspect ratiolara göre oyundaki objeleri konumlandıma mı ?

Aslında pygame ile tam ekran moduna aldığınızda her şeyi otomatik olarak boyutlandırıyor. PC’deyken oyunu tam ekran modunda çalıştırıp o şekilde TV’ye yansıtmayı deneyebilirsiniz.
pygame.display.set_mode((1280, 800), pygame.FULLSCREEN)

Edit: monitör 1280x800 imiş ben oyun penceresi sandım.

1 Beğeni

Sorun görüntünün, farklı monitörlerde benim monitörümdeki gibi görünmemesi.

Linkledigim soruda 5 satirlik cozumu var, ugrastirmamasi lazim.

Layout motoru. Ornegini verdigim gibi, objeleri yerlestirmek icin (x, y) koordinatindan baska seyler verebilmek. (Ornek icin herhangi bir GUI framework’une bakabilirsin.)

Linkledigim sorudaki ve burada benim yazdigim seylerle. Ama linkteki soruyu okuyacak vaktin yoksa bu sorunun cevabini arastiracak vaktin hic olmayacaktir.

3 Beğeni