2010-03-25 6 views
3

C#에서 흥미로운 것을 만들려고 처음 시도한 적이 있는데 사용자가 사용자 정의 해상도/화면 비율 등을 정의 할 수있는 간단한 양식이나 게임 화면을 만들려고했습니다. 자동으로 최대 화면 크기/비율을 감지하고 출력 하시겠습니까? 그것의 첫 번째 게임이었고, 가능했는지 또는 모든 문제가 1366x768 (모든 컴퓨터의 해상도)로 설정되지 않았는지 궁금했습니다. 도움을 주셔서 미리 감사드립니다.XNA/C# 게임 설정 (메뉴?)

답변

3

기본 그래픽 어댑터의 DisplayModeCollection 속성을 통해 열거하여 최대 너비/높이/종횡비의 DisplayMode을 찾을 수 있습니다. 같은

뭔가 :

GraphicsAdapter defaultAdapter = GraphicsAdapter.DefaultAdapter; 
DisplayMode maxMode = defaultAdapter.DisplayModeCollection[0]; 
foreach (DisplayMode enumeratedDisplay in defaultAdapter.DisplayModeCollection) 
{ 
    //Test enumeratedDisplay against maxMode, setting maxMode to enumeratedDisplay if enumeratedDisplay is better 
} 

아마 더 좋은 방법이 있지만, 확실히 당신이 최대를 찾을 수있는 하나의 방법입니다.

또는 동일한 DisplayModeCollection을 사용하고 사용자가 직접 선택할 수 있도록 정렬 또는 목록의 comboBox를 채울 수 있습니다.

위 코드가 정확한 형태로 작동하지 않으면 사과드립니다. 현재 내가있는 곳에서 테스트 할 수 없습니다.

+0

이것은 대단한 감사입니다. 사용자가 화면 해상도와 화면 비율을 선택할 수 있도록 Windows를 연결할 수 있는지 궁금 해서요. 화면 등하지만 내가 어떻게 설정을 저장하고 게임에로드하는 방법에 대한 확신이 양식은 별도의 애플 리케이션, 나는 여러 번 사용하기 때문에, 대안 솔루션을보고 싶습니다, 나는 이것이 더 쉬울 수도 생각 다른 게임이이 방식으로 만든 양식이나 파일에서 동일한 설정 데이터를 읽을 수있게 만들었습니다. – PCAddict

+0

기술적으로 WinForms를 첨부 할 수는 있지만 복잡합니다. 나만의 인게임 UI를 만들고 파일에 선택 사항을 저장하는 것이 좋습니다. – Bob

1

PreferredBackBuffer을 1366x768로 설정하면 그래픽 장치에서 해당 해상도를 처리 할 수 ​​있습니다. 그렇지 않으면 당신은 무언가를 축소시킬 것입니다. xbox는 TV가 사용되는 것을 지원하기 위해 필요한 경우 자동으로 확장됩니다.

+0

다른 시스템에서 친구들이 재생/테스트 할 수 있도록 변경할 수있는 기능을 찾고있었습니다. 게임 자체 내에서 구성 양식이나 메뉴를 만드는 것에 대한 쿼리였습니다. – PCAddict

+0

언제든지 선호하는 백 버퍼를 변경할 수 있다고 생각합니다. 그래서 이것을 바꿀 수있는 메뉴 항목을 쉽게 만들 수 있습니다 :-) –

관련 문제