2014-01-06 10 views
4

저는 한동안 2D 사이드 스크롤링 플랫폼을 개발했습니다. 이것은 나의 첫 번째 적절한 게임이며 거의 완료되었습니다. 나는 지금까지 결심에 대해 많이 생각해 보지 못했다.파이 게임 : 게임 해상도 변경

내 게임은 타일 기반이며, 대부분의 타일과 플레이어 스프라이트는 크기가 40x40 픽셀 인 .PNG 파일입니다. 기본 화면 높이와 너비는 1280x720입니다. 요즘 대부분의 게임은 내 지식에 따라 다양한 종횡비로 다양한 해상도를 선택할 수 있습니다.

저는 800x600, 1024x768 및 1280x720과 같은 해상도의 플레이어 커플을 선택하고 싶습니다. 플레이어가 게임에서 동등한 양의 타일을 볼 수 있도록 해줘야합니다. 그 중 어느 것이 든 해상도가 불공정 한 장점이나 단점을주지 않기 위해서입니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까?

나는이 스프라이트는 30x30의 픽셀로 축소되는 것을 의미

self.image = pygame.transform.scale(self.image, (30, 30)) 
self.image = pygame.transform.smoothscale(self.image, (30, 30)) 

를 사용하여, 주어진 해상도에 따라 게임의 스프라이트 스케일링에 대해 생각했다. 목표 크기입니다. 제대로 작동하지만 두 가지 문제는 품질의 저하입니다. pygame.transform.smoothscale은 적지 만 여전히 눈에 띄게 눈에.니다.

이것이 제가 궁금해하는 점은 이것이 동일한 파일의 새로운 예술 자산을 실제로 만들고 있지만 다른 차원을 가지고 있습니다. 여러 가지 해결 방법이있을 때 더 많은 작업이 필요합니다. 또한 기본 화면 해상도를 고수하고 플레이어가 원하는 것을 고르지 않게하려고 생각했습니다. 하지만 나는 그렇게하지 않습니다.

답변

3

대부분의 게임 요즘, 내 지식, 대부분의 게임은 현재 576 개 타일 기반으로하지 않는 마음에 서로 다른 화면 비율

그러나 곰과 다른 해상도 선택의 제비가! 정적 아트 애셋을 사용하지 않을 때 상황을 조정하는 것이 훨씬 쉽습니다.

이것에 대해 생각해보십시오. 16 : 9 형식 모니터 (1280x720) 용 (사각형) 애셋을 개발 한 경우 타일이 4 : 3 형식 모니터 (예 : 1024x768)에서 직사각형이어야하며 더 얇은 문자 여야합니까? 이 방법으로 간단히 스케일링하면 이상한 모양의 게임이됩니다. 그리고 당신이 말했듯이, 얼마나 많은 예술 자산이 만들어지면 엄청난 일이 될 것입니다. "common" resolutions이 있습니다.

대부분의 다른 일반적인 해상도 (예 : 800x600)에 적합한 기본 해상도로 게임을 멋지게 꾸미고 창을 실행하지 않으면 검은 색으로 모든 여유 공간을 차지하는 것이 좋습니다. 당신은 전체 화면을 사용하지 않을 것이지만, 게임 플레이가 좋다면 플레이어는 사용하고있는 비트에 집중할 것입니다!

여러 해상도를 실제로 지원하려면 하나의 종횡비를 선택하고 크기별로 별도의 애셋을 만들어야합니다. 이미 눈치 채 셨던 것처럼 간단히 예를 들어 40x40 ~ 30x30은별로 좋지 않습니다.

+0

정말 좋은 점, 답변 주셔서 감사합니다. 애스펙트를 시각화하는 데 도움이되는 좋은 [LINK] (http://gamedev.stackexchange.com/questions/2073/how-would-you-handle-different-aspect-ratios-in-a-2d-platformer)를 실제로 찾았습니다. 비율. 나는 4 : 3으로 생각하지만 여전히 스프라이트를 다루는 방법을 확신 할 수 없다. 스케일링은 문제가되지 않기 때문에 더 낮은 해상도를 위해 더 작은 스프라이트를 만들어야하고 더 높은 해상도를 위해 더 커야합니까? 이 일은 나를 위해 클릭하지 않습니다.나는 3 개의 서로 다른 크기의 자산을 다룰 수있는 많은 예술 자산이별로 문제가되지 않을 것입니다. – lefti

+0

게임 창 크기가 작을 때 동일한 정보를 표시하기 위해 더 작은 스프라이트가 필요하다는 것을 의미합니다. 화면이 더 큰 창과 더 큰 스프라이트보다 낫지 않습니까? 이 게임은 창을 띄게 될 것이므로 아무런 차이가 없다면 전체 화면 모드가 아닙니다. – lefti

+0

제 답변에 조금을 추가했습니다. 희망이 도움이됩니다. – jonrsharpe