Était-ce utile?

La solution

De Nick Gravelyn: http: // forum. xna.com/forums/p/49684/298915.aspx#298915 Accéléromètre est pas dans le cadre XNA plus. Vous pouvez y accéder par ces étapes:

  1. Ajoutez une référence à Microsoft.Devices.Sensors.dll
  2. Ajoutez 'en utilisant Microsoft.Devices.Sensors;' à vos déclarations à l'aide.
  3. Accrocher un événement et commencer à lire l'accéléromètre:

Essayez ceci:

try  
{  
    AccelerometerSensor.Default.ReadingChanged += Default_ReadingChanged;  
    AccelerometerSensor.Default.Start();  
}  
catch (AccelerometerStartFailedException)  
{  
}
  1. Ajoutez le gestionnaire d'événement lui-même:

Comme ceci:

void Default_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e)  
{  
}

Et vous êtes bon pour aller. Gardez à l'esprit, cependant, que l'accéléromètre ne fonctionne pas avec l'émulateur donc il n'y a aucun moyen de tester vraiment ce sans dispositif. Vous avez besoin que try / catch, car Start lancera une exception dans l'émulateur, car il ne supporte pas l'accéléromètre.

Autres conseils

Cela a changé il semble. Pour accrocher dans la « lecture changé », vous devez créer un accéléromètre, puis démarrez. Le code requis peut être trouvé à MSDN. Récupération Accéléromètre entrée (Windows Phone)

il ressemble à ceci:

#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

Voici un post de blog de Shawn Hargreaves

http://blogs.msdn.com/b/shawnhar/archive/2010/07/12/orientation-and-rotation-on-windows-phone.aspx?utm_source=twitterfeed&utm_medium=twitter

Si vous souhaitez basculer automatiquement entre les deux orientations portrait et paysage que le téléphone est mis en rotation:

graphics.SupportedOrientations = DisplayOrientation.Portrait | 
                                 DisplayOrientation.LandscapeLeft | 
                                 DisplayOrientation.LandscapeRight;

Commutation entre LandscapeLeft et LandscapeRight peut être géré automatiquement sans une aide spéciale du jeu, et est donc activé par défaut. Mais la commutation entre portrait et paysage modifie les dimensions de backbuffer (à court et à l'échelle par rapport à grande et mince), ce qui nécessitera probablement vous d'ajuster votre mise en page de l'écran. Tous les jeux seront capables de gérer cela (et certains modèles n'a de sens que dans un sens vers le haut), la commutation si dynamique entre le paysage et le portrait est activé uniquement pour les jeux qui opt-in explicitement la mise SupportedOrientations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top