代码之家  ›  专栏  ›  技术社区  ›  TommyBs

iOS游戏陀螺仪-当用户需要静止时如何检测作弊

  •  1
  • TommyBs  · 技术社区  · 7 年前

    我目前正在开发一款游戏,对于其中一个控件,我计划使用陀螺仪。由于其中一个条件是将手机保持稳定一段时间,有人能想出任何巧妙的方法来检测是否有人只是将手机放在一个平面上,然后离开了它?

    我想用加速度计来检测它是否很快被放下,但是如果他们在旅行和玩(这是一个非正式的游戏),这会给出错误的读数,并可能会错误地惩罚人们。我也考虑过接近传感器,但这需要把手机面朝下放在桌子上,以检测他们是否作弊,显然也不是解决办法。要么就是这样,要么他们就得弓着背趴在设备上。

    有人能想出任何好的解决办法吗?还是我只是在胡扯一个错误的想法?

    我能想到的另一个可能的解决方案是在一个大的圆内有一个小的圆,他们必须使用陀螺仪使它尽可能靠近中间。我可以不时地随机制造“摇摆”(就像在老的杀手游戏中狙击步枪永远不会100%静止来模拟自然呼吸摇摆等)。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Caleb    7 年前

    有人能想出任何巧妙的方法来检测是否有人只是把手机放在一个平面上,然后把它扔了?

    没有人可以留下 完全地 不管时间长短。摄影师尽最大努力以较慢的快门速度拍摄,但只有你的呼吸和心跳才能产生微小的动作。

    连接一个简单的测试项目,该项目使用核心运动来查看 accelerometer data 当你尽可能地保持设备的静止时,也当它坐在桌子上时。iOS应用程序通常使用 low-pass filter 过滤掉这些微小的随机运动,只看大的、缓慢的、有意的运动;你可能想做相反的事情,看看小的、高频的变化,这将是试图保持稳定的人和真正静止的桌子之间的区别。