Skip to content

A bygge en spilleautomat i Android: ViewFlipper motes bevegelsesdetektor.

A bygge en spilleautomat i Android: ViewFlipper motes bevegelsesdetektor.

William Francis kombinerer Android's ViewFlipper-klassen med bevegelsesdetektoren for a simulere spinnhjulet pa et tilfeldig spill. Folg trinnene eller last ned dette morsomme prosjektet.

Jeg har v rt i Vegas noen ganger, selv om jeg ikke mye liker a spille. En gang jeg vant $ 150 fra en spilleautomat, hentet jeg straks ut og brukte pengene til a kjope forreste seter til en Penn & amp; Teller magisk show. Den autograferte billettstubben er tucked away blant mine mest verdifulle eiendeler - rett ved siden av Jayne-hatten jeg plukket opp da Adam Baldwin kom til Dallas Comic Con for noen ar siden. Jeg gar ned.

I forrige ukes innlegg spiste vi tid pa Android's gestusdetektor. I mine avsluttende kommentarer foreslo jeg at bevegelses-API'en kunne brukes til a spinne hjulene til en spilleautomat, og det fikk meg til a tenke. Mens mange av TechRepublic-veiledningene mine stammer fra ekte utfordringer jeg moter som en del av min heltidspons som en Android-konsulent, bruker jeg en gang imot bloggen som et uttak for a prove noe uten annen grunn enn jeg tror det ville v rt goy.

Sa mens jeg egentlig ikke liker a spille spilleautomater med egne penger, var ingenioren i meg fascinert og litt begeistret for ideen om a kombinere Androids ViewFlipper-klasse med bevegelsesdetektoren for a simulere spinnhjulet i et tilfeldig tilfelle. Jeg trengte a komme opp med en mate a bruke animasjonene dynamisk, sa vel som en algoritme for a beregne antall rotasjoner. Ah, og la oss ikke glemme en metode for a redusere hastigheten over tid, basert pa hvor raskt eller sakte brukeren smiler hjulet. Se, jeg fortalte deg at det hores ut som moro.

Er du fortsatt med meg? Hvis ja, folg med trinnvis oppl ringen nedenfor, eller last ned og importer hele prosjektet direkte til Eclipse.

1. Opprett et nytt prosjekt i Eclipse-malretting Android 1.6 eller hoyere. Pass pa at du omdoper oppstartsaktiviteten til Main.java.

2. Vi vil aldri at var spilleautomat skal lope i noe annet enn portrettmodus, sa endre din AndroidManifest.xml-fil for a svelge orienteringsendringer.

3. Du ma opprette en / drawable-mappe under din / res-katalogen og legge til tre PNG-bilder - noe frukt vil gjore. Jeg fant offentlige bilder av en kirseb r, en sitron og en p re. Mmmmm!

4. Definere layoutet for var spilleautomat er litt mer komplekst enn det jeg vanligvis prover a gjore i disse oppl ringene; Arsaken er ViewFlipper. Den gode nyheten er fordi sa mye av oppforselen til ViewFlipper er definert i XML, nar vi kommer til a bruke det, er det nesten ingen kode knyttet til widgeten. For na, bare apne /res/layout/main.xml og lim inn i folgende layout.

5. Na er det pa tide a fa koding! I mappen / src apner du Main.java og begynner med a opprette noen klassevariabler og initialisere dem i opprettingsoverstyringen.

6. Hvis du husker fra forrige uke, betyr at du ma legge til syv tilbakekallingsfunksjoner, slik at hovedaktiviteten kan implementere den pa bevegelsen. Lytt til at vi bare kan la Android Eclipse-plugin-modulen generere for oss.

7. De resterende gestrelaterte overrides krever egendefinert kode. Den forste forplanter beroringshendelsen til bevegelsesdetektoren, mens den andre utforer var on-fling logikk. Du ma kanskje lese gjennom loggfilen et par ganger; Det er ansvarlig for a starte en rekke rotasjoner, samt starthastigheten og tidsbegrenset reduksjonsfaktor, basert pa det opprinnelige vertikale hastighetsargumentet. Try / catch forhindrer en splittelse med null feil som kan oppsta hvis en bruker swiped skjermen smertelig sakte, og paforer dermed en n r null hastighetsrate. Siden vi snakker om Y-aksen, blir noe mer enn 0 betraktet som en nedadgaende boyning; ellers antar vi oss.

8. Som det ofte er tilfelle med Android, kommer noen av de vanskeligste logikkene til spill nar du bruker animasjoner. Til dette formal har jeg brukt to matchende par rutiner. For a handtere oppbevegelsen har jeg en runnable sammen med de dynamiske animasjonene. Siden animasjonstidspunktet ikke trenger a v re noyaktig, bruker jeg en handler og kjedeposter.

9. Ikke i motsetning til retningen, vi har to nesten identiske funksjoner for a handtere en nedadgaende rotasjon av hjulet vart.

Jackpot! Mens den endelige losningen endte opp med a v re mer kode enn jeg trodde ved starten, er ingenioren i meg fornoyd med resultatene. Animasjonen er ganske jevn pa min Nexus S kjorer Jelly Bean. Hvis du har en eldre telefon, vil jeg v re nysgjerrig pa hvordan det ser ut. Husk a legge inn noen tanker om dette emnet i diskusjonstraden. I mellomtiden skal jeg snurre hjulet flere ganger og sa logge av.

Relaterte temaer:

Om William J. Francis.

William J Francis begynte a programmere datamaskiner i alderen elleve. Han har spesialisert seg pa innebygde og mobile plattformer, og har mer enn 20 ars profesjonell programvareteknikk under beltet hans, inkludert en firearig stint i US Army's Military Intellig.

William J Francis begynte a programmere datamaskiner i alderen elleve. Han har spesialisert seg pa innebygde og mobile plattformer, og har mer enn 20 ars profesjonell programvareteknikk under beltet hans, inkludert en firearig stint i US Army's Military Intelligence Corps. Gjennom sin karriere har William utgitt en rekke tekniske artikler, samt en og annen kort historie.

Bli med pa diskusjon.

Redaktorens valg.

Gratis nyhetsbrev, i innboksen din.

Tekniske nyheter du kan bruke.

Vi leverer de beste business tech nyhetshistoriene om selskapene, folket og produktene som revolusjonerer planeten.

Best of the Week.

Vare redaktorer fremhever TechRepublic-artikler, gallerier og videoer som du absolutt ikke kan ga glipp av for a holde deg oppdatert pa de nyeste IT-nyhetene, innovasjonene og tipsene.


Hilsen! Vil du spille i det mest populære kasinoet? Vi samlet det for deg. Registrer deg nå!