代码之家  ›  专栏  ›  技术社区  ›  Jeffrey Berthiaume

如何检测iphone的高度(用于增强现实游戏)?

  •  7
  • Jeffrey Berthiaume  · 技术社区  · 16 年前

    我正在三维空间中寻找一个iphone设备。

    我可以使用LAT/Lon来检测物理位置,我可以使用磁力仪来确定它们所面对的方向,并且我也许可以使用加速度计来确定它们的设备是如何定向的,但是我找不到一种方法来使设备的高度离地。

    具体来说,我需要知道用户是蹲下,还是向天花板举起手(大约2米/6英尺)。

    我在我的博客上发布了一个更详细的描述: http://pushplay.net/blog_detail.php?id=36

    我很想得到任何关于如何伪造这类信息的建议。我真的想要那种互动和运动,这需要蹲下和摆动,而只是让别人坐下来和电话倾斜——这是人们用“Wii”玩“欺骗”的方式。

    3 回复  |  直到 16 年前
        1
  •  7
  •   Josh E    16 年前

    我能看到你最接近你想要的是用加速度计/磁强计作为惯性跟踪器。你必须在启动时将用户的初始位置校准到一个“基本”位置,然后在后台线程上连续采样传感器,以建立一个移动模型。 This post 讨论提高加速度计功能的默认采样率,这样你就可以得到用户运动的细粒度图片。

    我不确定这是否能解决你对人们仅仅是用这个装置来产生你想要的动作的担心,但是你必须在对动作的解释过于严格和允许动作的差异之间找到一个平衡点

        2
  •  1
  •   h4xxr    16 年前

    CoreLocation提供了高程和纬度/经度,因此您可以潜在地使用它,尽管这方面存在一些重大问题:

    • 室内效果不好(卫星导航不成问题,游戏有问题)
    • 你的用户必须“校准”(可能是把手机放在地板上)他们使用的每个位置!
    • 事实上,你需要开始保留一个“以前校准过的位置”列表…在一个房间(如多个房间和楼层)里变化很大。可能会妨碍比赛。
    • 不能用于移动运输(飞机、飞机、汽车……)甚至步行)因为海拔变化太频繁。

    因此,我认为使用加速度计作为高度的代理比确定绝对高度更可取。

        3
  •  0
  •   Allen Rice 0x6A75616E    16 年前

    我对iphone不是很熟悉。但它可能需要一个硬件插件。(你可能不想这么做)。经过思考,我知道唯一的方法是通过光或更具体的激光。你在地板上发射一个激光,记录下返回的时间。把这些硬件组装在一起其实并不多,我相信iphone有外设连接。除非奥斯梅能击败我,我说EIS无法用图像来做到这一点。