Гироскоп iOS для игры - как обнаружить читерство, когда пользователю нужно оставаться на месте

В настоящее время я создаю игру, и для одного из элементов управления я планирую использовать гироскоп. Поскольку одним из условий будет удержание телефона в устойчивом состоянии в течение некоторого периода времени, может ли кто-нибудь придумать какие-либо гениальные способы определить, просто ли кто-то положил свой телефон на плоскую поверхность и оставил его?

Я подумал об использовании акселерометра, чтобы определить, быстро ли он выходит из строя, но затем, если они путешествуют и играют (это казуальная игра), это будет давать неправильные показания и потенциально неправильно наказывать людей. Я также подумал о датчике приближения, но для этого потребуется положить телефон лицевой стороной вниз на стол, чтобы определить, обманывают ли они, что, очевидно, тоже не решение. Либо так, либо им придется склониться над устройством.

Может ли кто-нибудь придумать какие-нибудь хорошие решения, или я просто лаю не на то дерево с идеей?

Единственное другое возможное решение, которое я могу придумать, - это маленький круг внутри большего круга, и они должны использовать гироскоп, чтобы держать его как можно ближе к середине. Я мог время от времени случайным образом создавать "колебания" (так же, как в старых играх с убийцами, когда снайперская винтовка никогда не была на 100% неподвижной, чтобы имитировать естественное колебание дыхания и т. д.)

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 часто используют фильтр нижних частот, чтобы отфильтровать эти крошечные случайные движения и смотреть только на большие, медленные, преднамеренные движения; вы можете сделать обратное и посмотреть на небольшие высокочастотные изменения, которые будут отличать человека, пытающегося оставаться устойчивым, и действительно неподвижного стола.

Другие вопросы по теме