는 방법을 확인하 방향의 Windows Phone7XNA 게임은?
-
20-09-2019 - |
문제
비슷 이 질문, 지만,에 대한 답을 찾고 있는 것 작업의 컨텍스트에서 XNA 게임입니다.
지 여부를 어떻게 확인할 수 있습니는 장치에서는 가로 또는 세로 방향?응답에서 주어진 일반적인 질문에 의존한 기능이 내장되어 있으므로,PhoneApplicationPage.AFAIK,당신은 없을 정상적으로 사용되는 클래스의 컨텍스트 내에서 XNA 게임에서 Windows Phone7.
해결책
Nick Gravelyn에서 : http://forums.xna.com/forums/p/49684/298915.aspx#298915가속도계는 더 이상 XNA 프레임 워크에 없습니다. 다음 단계를 통해 액세스 할 수 있습니다.
- Microsoft.devices.sensors.dll에 대한 참조를 추가하십시오
- 'microsoft.devices.sensors;'추가; 사용 설명서에.
- 이벤트를 연결하고 가속도계를 읽기 시작하십시오.
이 시도:
try
{
AccelerometerSensor.Default.ReadingChanged += Default_ReadingChanged;
AccelerometerSensor.Default.Start();
}
catch (AccelerometerStartFailedException)
{
}
- 이벤트 핸들러 자체 추가 :
이와 같이:
void Default_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e)
{
}
그리고 당신은 가기 좋습니다. 그러나 가속도계는 에뮬레이터에서 작동하지 않으므로 장치없이 실제로 테스트 할 방법이 없습니다. 가속도계를 지원하지 않기 때문에 시작이 에뮬레이터에서 예외가 발생하기 때문에 시도/캐치가 필요합니다.
다른 팁
이것은 바뀌 었습니다. '읽기 변경'에 연결하려면 가속도계를 만들고 시작해야합니다. 필요한 코드는 MSDN에서 찾을 수 있습니다. 가속도계 입력 검색 (Windows Phone)
다음과 같이 보입니다.
#if WINDOWS_PHONE
Accelerometer accelerometer;
try
{
accelerometer = new Accelerometer();
accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(a_ReadingChanged);
accelerometer.Start();
}
catch (AccelerometerFailedException e)
{
}
...
}
void a_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
//this function is not supported by the window 7 phone emulator
throw new NotImplementedException();
}
#endif
여기에서 게시 Shawn 하'블로그
하려는 경우 자동으로 전환 가로 세로 방향으로 전화로 회전:
graphics.SupportedOrientations = DisplayOrientation.Portrait |
DisplayOrientation.LandscapeLeft |
DisplayOrientation.LandscapeRight;
사이를 전환 LandscapeLeft 및 LandscapeRight 처리할 수 있습을 필요로 하지 않고 자동으로 특별한 도움말 게임에서이며,따라서 기본적으로 사용됩니다.하지만 전환 사이 풍경과 초상화가 변경 backbuffer 크기(short-and-넓은 대높이고 얇),가능성이 높은 요구를 조정해 화면 레이아웃이 있습니다.모든 게임을 처리할 수 있을 것입니다 이것은(및 일부 디자인은 경감 방법 중 하나까지),그 동위칭화에 대해서만 사용한 게임을 명시적으로 선택해서 설정 SupportedOrientations.