2011. december 9., péntek

Irányítás telefonon

Sikerült! Több napi munka utáni kódolás után sikerült megcsinálni az irányítást a telefonos játékomhoz. Most megpróbálom leírni a tapasztalataimat. Először is kicsit magáról az eszközről. A konzol-pc platformmal ellentétben a modern okos kütyük csak korlátozott és előre definiált gombkiosztással érkeznek. Tehát adott a probléma, hogy az érintőképernyőn nekünk kell kitalálnunk és egyben megvalósítanunk a saját vezérlőnket. Ez ugye adja a szabadságot, hogy azt rakunk fel, amit csak akarunk, ugyanakkor figyelnünk kell az ergonómiára is. Az ergonómiának egyik legfontosabb része az egyszerűség, hiszen a fizikai irányítókkal ellentétben itt nincs visszacsatolás, hogy a felhasználó megfogta azt a gombot. Szerintem az egyik legjobb megoldás, ami a mellékelt képen is látható, hogy létrehozok 2 virtuális thumbsticket (lásd Xbox 360 controller valós thumbstickjei). Ez természetesen már létezik más játékokban is, így maga az ötlet nem saját, csak a megvalósítás.

A megvalósításom a következőképpen néz ki. A Thumbsticket 2 objektumra bontottam, az alsó karika reprezentálja az érzékelő területet, ahol a controller érzékeli az érintést, illetve a központi "stick"-re, amely az aktuális elmozdulást reprezentálja. A középpont és az elmozdulás különbségéből pedig szépen kiszámolom az aktuális irányvektort. Ez egész jól működött is, azonban zavaró volt, hogy amikor kiléptem a karikából leállt a teljes irányítás. Ez egy izgalmas akció közben erősen a játékélmény rovására mehet, ezért kell egy kis toleranciát építeni a vezérlőbe. A trükk egyszerű, mindaddig vegyen infót az irányító, amíg a felhasználó fel nem emeli az ujját a képernyőről. Ezt könnyen le is tudjuk követni a TouchLocation State propertyjével, amely Released állapotba kerül. Innentől már csak fel kell használnunk a vektorokat, amelyeket a vezérlőtől kapunk.

Nincsenek megjegyzések:

Megjegyzés küldése