2013-01-18 4 views
1

Ceci est une question assez ouverte.Accéléromètre ne fonctionne pas bien dans tous les appareils

Nous avons développé un jeu pour Android à l'aide AndEngine. Les zombies viennent à vous et ils vous "attrapent", et pour les secouer, vous devez déplacer l'appareil. Il y a un bug présent dans plusieurs appareils où l'on ne peut pas secouer les zombies en déplaçant l'appareil. Nous ne pouvons pas reproduire cette erreur sur les appareils que nous avons pour tester le jeu.

Donc, ma question est la suivante: Y aurait-il une possibilité de ne pas être matériel entièrement compatible avec certaines fonctions Android? Je veux dire qu'il y a une mer d'appareils Android là-bas.

Je pose cette question afin d'avoir une meilleure idée de la façon de procéder. Faut-il creuser la programmation plus (comme nous l'avons fait, sans succès) ou mettre en œuvre une autre façon de secouer les zombies (sans l'accéléromètre).

Merci à l'avance

Voici le jeu car si quelqu'un veut avoir une meilleure idée du bug https://play.google.com/store/apps/details?id=com.exmgames.cfdesperationlite

+0

Il y a certainement des dispositifs là où l'accéléromètre n'est pas aussi sensible ou fiable que d'autres, bien qu'il puisse être utile de parler aux gens d'Andengine parce que je suppose que vous êtes déjà à un niveau d'abstraction (surtout si vous pouvez affiner les périphériques spécifiques). Peut-être besoin d'ajouter un geste de gribouillage ou similaire pour simuler le tremblement ... – Offbeatmammal

Répondre

1

problème peut être avec une fréquence de Accelerometer.Dont utiliser des constantes ci-dessous Android lors de l'enregistrement.

mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL); 

ces valus sont différents pour différents dispositifs. i.e. ex: SENSOR_DELAY_UI donne 100Hz dans un seul appareil et 50Hz dans un autre et 125Hz dans un autre. utilisez toujours des taux de fréquence codés en dur.

int SENSOR_DELAY_FASTEST get sensor data as fast as possible 
int SENSOR_DELAY_GAME rate suitable for games 
int SENSOR_DELAY_NORMAL rate (default) suitable for screen orientation changes 
int SENSOR_DELAY_UI rate suitable for the user interface 

Utiliser dur des valeurs codées en microsecondes comme pour la fréquence 1 Hz

mSensorManager.registerListener(this, mAccelerometer,1000000); 

espère qu'il résout.

Questions connexes