Cunoștințe, prelegere, accelerometru

Obiectiv: Învățați cum să procesați datele accelerometru pentru a fi utilizate în aplicațiile de jocuri

12.1. Obținerea datelor despre accelerometru

Să luăm în considerare lucrul cu un accelerometru în exemplu, care primește date de la dispozitiv și afișează informații despre ele pe ecran.

Creați un nou proiect de joc standard, pregătiți-l pentru afișarea textului în fereastra jocului XNA, adăugați o nouă resursă numită .spritefont numită MyFont. Pentru a accesa accelerometrul, trebuie mai întâi să conectăm biblioteca Microsoft.Devices.Sensors. În al doilea rând, spațiul de nume Microsoft.Devices.Sensor.

Pentru a conecta biblioteca, trebuie să faceți clic dreapta în Solution Explorer din grupul Referințe din proiectul P6_1, să selectați linkul Adăugare referință și în fereastra care apare în fila. NET selectați Microsoft.Devices.Sensor. Fig. 12.1.

Cunoștințe, prelegere, accelerometru


Fig. 12.1. Conectarea Bibliotecii

Ca rezultat, fereastra Solution Explorer ar trebui să ia forma prezentată în Fig. 12.2

Cunoștințe, prelegere, accelerometru


Fig. 12.2. Fereastra Solution Explorer

Am implementat procedura de obținere a datelor de la accelerometru în codul principal al programului. Puteți vedea acest cod în listare 12.1

Listarea 12.1. Codul jocului1

Luați în considerare punctele cheie ale acestui cod. Aici vom scoate valoarea citirii accelerometrului pe ecran. Aceste citiri vor fi stocate în variabile accVector de tipul Vector3. Pregătirea accelerometru și bucla de joc care rulează în diferite fluxuri, pentru a asigura funcționarea corectă a programului, adică - șterge o metodă de citire a datelor de actualizare de la accVector variabilă. care aparțin diferitelor măsurări ale citirilor accelerometrului. blocăm folosind construcția de blocare. operațiuni critice. în acest caz - pentru a seta accVector variabilă în metoda de tratare a evenimentului accelerometer_CurrentValueChanged și actualizare.

În metoda Initialize, vom crea un obiect nou de tipul Accelerometru. setați parametrul TimeBetweenUpdates. egală cu 1000 milisecunde, adică accelerometrul va fi îndepărtat 1 dată pe secundă. Acest timp poate fi diferit - totul depinde de sarcinile care sunt înaintea aplicației.

Pentru a obține date de la accelerometru, conectăm handlerul de evenimente CurrentValueChanged. care apare când sosesc date noi de pe dispozitiv. Acest handler este implementat de accelerometer_CurrentValueChanged. Aici obținem datele (ele sunt reprezentate ca vector tridimensional) și le scriem la variabila accVector.

Înainte de a utiliza accelerometrul. trebuie să executați metoda Start () a obiectului Accelerometer. O încercare de a executa această metodă este asociată cu lucrul cu un dispozitiv fizic, pot exista erori, deci încheiem această încercare în încercare <> captură <>. Aici puteți configura comportamentul programului în cazul în care această încercare nu reușește, adică accelerometrul nu va fi inițializat.

În metoda de actualizare, listați conținutul variabilei accVector într-o formă de text și scrieți șirul rezultat într-o variabilă de text. Textul conținut în aceasta este afișat în metoda Draw.

Cunoștințe, prelegere, accelerometru


Fig. 12.3. Citirea accelerometrului, dispozitivul se află pe o suprafață orizontală

Aplicații care utilizează senzori fizici. cu siguranta nevoie pentru a depana folosind dispozitivul reale, cu toate acestea, în cazul unui accelerometru, un mare ajutor în depanare pot avea instrumente suplimentare disponibile în emulator.

Articole similare