如何处理Swift StartDeviceMotionUpdate处理程序中的许多功能?
这是我在这里的第一篇文章,所以希望我做得正确。 因此,我目前正在使用Swift 5制作一个具有核心运动框架的钓鱼游戏。 我现在正在努力的部分是如何处理Swift StartDeviceMotionUpdate处理程序中的许多功能?,swift,xcode,core-motion,Swift,Xcode,Core Motion,这是我在这里的第一篇文章,所以希望我做得正确。 因此,我目前正在使用Swift 5制作一个具有核心运动框架的钓鱼游戏。 我现在正在努力的部分是startDeviceMotionUpdates(to:queue){…code…} var i = 1 while (i < 5) { ... manager.startDeviceMotionUpdates(to: queue) { (data, error) in
startDeviceMotionUpdates(to:queue){…code…}
var i = 1
while (i < 5) {
...
manager.startDeviceMotionUpdates(to: queue) {
(data, error) in
guard let data = data, error == nil else {
return
}
if (data.userAcceleration.z < -1.5) {
print("snap")
i += 1
print(i)
}
}
}
var i=1
而(i<5){
...
manager.StartDeviceMotionUpdate(到:队列){
(数据、错误)在
保护let数据=数据,错误==nil else{
返回
}
if(data.userAcceleration.z<-1.5){
打印(“快照”)
i+=1
印刷品(一)
}
}
}
我现在有这个,所以当我按下手机时,它会在控制台上打印“snap”和一个号码。然而,我想做的是改变精灵,使渔夫看起来像是在扔鱼竿。因此,我尝试用self.fisher=SKSpriteNode(纹理:fisherTextures[1])替换print(“snap”)
,但效果并不理想。它仍然会将“快照”打印到控制台,但当应用程序启动时,精灵是一样的。我该如何解决这个问题
此外,除了在手机向下抓拍时更改精灵外,我还想做一些其他事情,比如让用户在抓到鱼时向上抓拍手机。但是,这似乎也应该在块/处理程序内部完成。在这种情况下,将有相当数量的代码。可以吗?还有其他干净的方法吗
最后,它似乎一旦进入startDeviceMotionUpdates块/处理程序,就不会离开它。我将while循环设置为从1运行到5,但我可以在控制台中看到“I”上升超过5
哦,如果你能推荐一些核心运动框架的示例代码/文章给我阅读,那就太好了
TL;博士: