В настоящее время я создаю игру, и для одного из элементов управления я планирую использовать гироскоп. Поскольку одним из условий будет удержание телефона в устойчивом состоянии в течение некоторого периода времени, может ли кто-нибудь придумать какие-либо гениальные способы определить, просто ли кто-то положил свой телефон на плоскую поверхность и оставил его?
Я подумал об использовании акселерометра, чтобы определить, быстро ли он выходит из строя, но затем, если они путешествуют и играют (это казуальная игра), это будет давать неправильные показания и потенциально неправильно наказывать людей. Я также подумал о датчике приближения, но для этого потребуется положить телефон лицевой стороной вниз на стол, чтобы определить, обманывают ли они, что, очевидно, тоже не решение. Либо так, либо им придется склониться над устройством.
Может ли кто-нибудь придумать какие-нибудь хорошие решения, или я просто лаю не на то дерево с идеей?
Единственное другое возможное решение, которое я могу придумать, - это маленький круг внутри большего круга, и они должны использовать гироскоп, чтобы держать его как можно ближе к середине. Я мог время от времени случайным образом создавать "колебания" (так же, как в старых играх с убийцами, когда снайперская винтовка никогда не была на 100% неподвижной, чтобы имитировать естественное колебание дыхания и т. д.)
can anyone think of any ingenious ways to detect whether someone has simply placed their phone on a flat surface and left it?
Никто не может оставаться полностью на какое-то время. Фотографы изо всех сил стараются снимать с длинной выдержкой, но только ваше дыхание и сердцебиение создают крошечные движения.
Подключите простой тестовый проект, в котором используется Core Motion, чтобы смотреть на данные акселерометра, когда вы держите устройство максимально неподвижно, а также когда оно сидит на столе. Приложения iOS часто используют фильтр нижних частот, чтобы отфильтровать эти крошечные случайные движения и смотреть только на большие, медленные, преднамеренные движения; вы можете сделать обратное и посмотреть на небольшие высокочастотные изменения, которые будут отличать человека, пытающегося оставаться устойчивым, и действительно неподвижного стола.