问题标签 [cmmotionmanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sprite-kit - 检查精灵是否在移动
我有一个应用程序,我在其中使用 motionManager.gravity 移动节点
这是我的代码
然后我使用 displayLink 更新和移动精灵节点。一切都很好,我可以让节点停在边缘和屏幕上的特定位置。我想知道的是是否有办法查看节点是移动还是停止:1. 在边缘 2. 通过代码在特定位置。3. 设备保持水平,因此加速度计不会生成任何大于 0 的 n 或 y 数。
我想在精灵节点移动时播放声音,但在精灵节点不移动时停止声音。
有任何想法吗?
ios - 无法使用类型参数列表调用“startAccelerometerUpdatesToQueue”
我正在尝试在运行以下代码时实例化 CMMotionManager:
我收到一条错误消息:“无法使用类型为 '(NSOperationQueue?, withHandler: (CMAccelerometerData!, NSError!) -> _)' 的参数列表调用 'startAccelerometerUpdatesToQueue'
我究竟做错了什么?谢谢你。
ios - cameranode随着iOS设备移动而旋转
这是 360 度视频播放器项目。
我在根节点中添加了一个cameranode(SCNNode
),cameranode被放在了的中心(0,0,0)SCNSphere
,它现在可以播放视频了。
现在我必须使用 devicemotion。当设备移动时,我需要旋转相机。不只是旋转某个角度。(不只是设备移动,当我拿着设备时,我的移动被认为是设备移动。因为我发现如果我使用deviceMotion.attitude.roll
,cameranode只有在设备自己移动时才会移动,而不是当我带着设备转圈时)
当设备位于 (x1,y1,z1) 位置时,cameranode 会随着设备的移动而旋转,当设备再次位于 (x1,y1,z1) 位置时,视图应该与我们离开的最后一个相同.
这是我所做的:
数学可能是错误的,我不知道为什么要除以 60,但它似乎是我使用时需要的最接近的值[self.cameraNode runAction:[SCNAction rotateByX:-tempY y:tempX z:tempZ duration:0]];
问题来了?
- 我应该使用哪些数据?
CMGyroData
或CMDeviceMotion
。如果使用CMDeviceMotion
,我应该使用哪个特定值?deviceMotion.attitude
, deviceMotion.attitude.quaternion
,deviceMotion.gravity
- 旋转相机节点的正确方法是什么?有很多方法,我不确定。
+ (SCNAction *)rotateByX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration;
+ (SCNAction *)rotateToX:(CGFloat)xAngle y:(CGFloat)yAngle z:(CGFloat)zAngle duration:(NSTimeInterval)duration;
ios - 如何在多个处理程序中获取 CMDeviceMotion 更新?
苹果说:你应该只创建一个 CMMotionManager 实例来获取准确的数据。
如果我想在应用程序启动时启动设备运动更新,然后在多个位置获取 updatesToQueue 怎么办。
场景是这样的:
应用程序启动 - 在没有处理程序的情况下启动设备运动更新
ClassA - 启动设备运动更新以在特定时间排队。
ClassB - 启动设备运动更新以在特定时间排队。
需要时停止设备运动更新。
iphone - spritekit xcode中的直立周长
我正在使用 sprite kit 开发一个简单的游戏。
我有三个精灵在屏幕上移动。我让精灵通过使用移动
我已经像这样在精灵(1,2,3)上启用碰撞检测
这是边缘循环的新代码
CGRect 边框= CGRectInset (self.frame,325,133);
self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:border];
我如何在它周围放置一个周边,以便当精灵与它接触时,即使第二个精灵与已经在边缘停止的精灵发生碰撞,它们也不会进一步移动。我不希望屏幕的边缘是周边,而是我定义的周边。
现在我让精灵停止使用
对于每个精灵和每个边缘
这可以在精灵到达边缘时停止它,但是当另一个精灵与它碰撞时,边缘的精灵会超出边缘。
有没有办法定义一个边界,无论如何没有精灵可以超出它?
谢谢您的帮助。
ios - 如何使用 CMDeviceMotion 检测我的设备的运行速度?
我正在编写一个 iOS 应用程序,并且不想在我的设备达到一定速度之前开始检测抖动事件。我知道如何使用 CMMotionManager 来获取 CMAccelerationData 来检测抖动事件,但有人知道我应该用什么来检测我的设备移动的速度吗?CMDeviceMoting/userAcceleration/GPS ...我只是找不到我应该做什么。我正在快速编写我的应用程序,但 Objective-C 中的答案也足够了。
谢谢您的帮助
objective-c - CMDeviceMotion 的所有属性是什么?
查看我可以从 CMDeviceMotion 获得的所有数据,我试图弄清所有这些数据点之间的差异。下面的说法准确吗?加速度是我在各个方向上移动的速度。陀螺仪/态度是我在各个方向上倾斜的程度。姿态是俯仰滚转和偏航。
那么我得到的这些重力数字是多少?旋转速度与我得到的姿态数据有何不同?旋转速度是陀螺仪数据的导数还是什么?
输出:
ios - 从苹果手表(而不是 iPhone)获取加速度计和陀螺仪数据?
看到这个问题后,我尝试编写一个快速程序,将手表加速度计和陀螺仪数据保存到文件中。
我已经绘制了这些数据,并且在我的一生中,无论我多么用力地摇晃手表,我的所有情节都是这样的:
直到 8 小时后,我才开始怀疑我不是从手表上抓取加速度数据,而是从手机(坐在我旁边的桌子上)。我进行了一些测试并确认这正是正在发生的事情。
这使我想到了最初的问题。如何从手表而不是 iPhone 中提取加速度/陀螺仪/数据?
ios - 每隔一秒设备震动运行一次代码
我试图在 iPhone 左右晃动的每一秒执行一些代码。这是一个指向.gif 的链接,用于说明我想要的旋转类型。我尝试了以下代码viewDidLoad
:
当我运行应用程序(我正在使用模拟器)并转到“硬件>向左旋转/向右旋转/摇动手势”时,没有任何反应。我做错了什么,我该如何解决?
ios - 请帮我正确应用设备旋转数据
所以我有一个我正在尝试做的项目。我试图让设备相对于重力旋转,并从它开始的地方平移。所以基本上得到设备的“跟踪”数据。我计划通过制作一个 3d pt 来应用这一点,该 pt 将模仿我稍后从设备记录的数据。
无论如何,为了实现这一点,我认为最好使用场景工具包,这样我就可以看到 3 维的东西,就像我试图记录的数据一样。现在,我一直在尝试让船旋转,以便无论设备旋转是什么,它总是看起来像它的重力(就像它在地面上或其他东西上)。我想一旦我把它记下来,把它应用到一个点上会很容易。所以我做了以下代码:
当您只运行其中一条旋转线时,一切都很完美。它确实在该轴上正常运行。但是,当我同时做所有三个轴时,它会变得混乱,并且在抖动和所有事情上都表现得远远超出预期。
我想我的问题是:有谁知道如何修复我上面的代码,以便无论方向如何,船都能正确保持“直立”。