In het vorige artikel hebben we de Windows Phone 7 device input mogelijkheid besproken. Daarin kwam eigenlijk alleen maar de touchpanel interface naar boven. Heel bruikbaar, maar hiermee hebben we maar een deel van de mogelijkheden besproken. Touches en gestures. Er zijn nog meer mogelijkheden namelijk het gebruik van de accelerometer. Dit is een sensor die in de telefoon is ingebouwd en stelt de gebruiker in staat om ‘krachten’ op drie oriëntatie assen uit te lezen; X,Y en Z-as. Op basis van deze informatie kan je bepalen hoe de gebruiker de telefoon vast houdt en bijvoorbeeld bepalen of de telefoon plat op de tafel ligt. In dat geval zou de Z-as een waarde van –1.0 hebben.
Alle waardes die gerapporteerd worden, zitten tussen +1.0 en –1.0 en hebben een precisie van 3 cijfers achter de komma.
Het uitlezen van de waardes gebeurt op een andere manier dan wij hiervoor gezien hebben. De accelerometer sensor wordt namelijk event driven uitgelezen. We moeten dus zelf subscriben op de events en dan komen ze binnen. Met de andere input devices werkt het anders. Die kan je uitlezen wanneer je wil in bijvoorbeeld de Update() methode van je game class. Voor de accelerometer dus niet. Is op zich helemaal geen probleem, maar het is wel een afwijking van wat wij tot nu toe gezien hebben. De reden voor deze ander aanpak is, volgens Microsoft, omdat dezelfde API ook door Silverlight Windows Phone applicaties gebruikt wordt en daar is het programmeer model wel in zijn geheel event driven. Klinkt logisch.
Als je gebruik wil maken van de accelerometer mogelijkheden zal je de Microsoft.Devices.Sensors assembly zelf moeten toevoegen: