मैं विंडोज फोन (एक्सएनए) के लिए अपना पहला गेम बना रहा हूं। मैं स्क्रीन पर एक क्रॉसहेयर की स्थिति बदलने के लिए Accelerometer का उपयोग करें:विंडोज फोन 8 एक्सेलेरोमीटर घटनाएं
यहाँ मेरी Initialize() समारोह में कोड है (ध्यान दें कि Accelerometer स्थानीय चर इस समारोह में केवल घोषित है):
Accelerometer accelerometer = new Accelerometer();
accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
accelerometer.Start();
और ईवेंट हैंडलर:
void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
{
lock (accelerometerVectorLock)
{
accelerometerVector = new Vector3(
(float)e.SensorReading.Acceleration.X,
(float)e.SensorReading.Acceleration.Y,
(float)e.SensorReading.Acceleration.Z);
}
}
यह ठीक काम करता है विंडोज फोन एमुलेटर पर, और नोकिया लुमिया 520 पर कंप्यूटर से कनेक्ट और विजुअल स्टूडियो से लॉन्च होने पर, हालांकि जब मैं फोन में गेम लॉन्च करता हूं (कंप्यूटर से कनेक्ट नहीं), तो एक्सेलेरोमीटर_CurrentValueChanged ईवेंट केवल एक बार, एप्लिकेशन पर कहा जाता है चालू होना। ,
accelerometer = new Accelerometer();
accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
accelerometer.Start();
तो मेरे सवाल है क्यों इस समाधान काम करता है:
मेरे समाधान इस तरह accelerometer मेरे खेल वर्ग के एक सदस्य है, तो प्रारंभ (में कोड) बनाने के लिए किया गया था? और वीएस से लॉन्च किए गए एप्लिकेशन और सामान्य रूप से, उसी डिवाइस पर भी कोई अंतर क्यों है?
मैं इस उत्तर से पूरी तरह से संतुष्ट हूं। धन्यवाद – Przemen