【发布时间】:2015-06-29 20:32:38
【问题描述】:
我有一个应用程序,我在其中使用 motionManager.gravity 移动节点
这是我的代码
self.motionManager = [[CMMotionManager alloc] init];
self.motionManager.deviceMotionUpdateInterval = 0.005f;
self.motionQueue = [[NSOperationQueue alloc] init];
self.motionQueue.name = [[[NSBundle mainBundle] bundleIdentifier] stringByAppendingString:@".motion"];
self.updatePosition = NO;
[self.motionManager startDeviceMotionUpdatesToQueue:self.motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
@synchronized(self) {
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumFractionDigits:2];
[formatter setRoundingMode: NSNumberFormatterRoundUp];
{
numberString = [formatter stringFromNumber:[NSNumber numberWithFloat:motion.gravity.x / 20.0 *200]];
numberStringy = [formatter stringFromNumber:[NSNumber numberWithFloat:motion.gravity.y / 20.0 *200]];
n = [numberString intValue];
/*NSLog(@"ball.center x:%d",n);*/
y = [numberStringy intValue];
/*NSLog(@"ball.center y:%f",balla.center.y);*/
}
self.gravity = motion.gravity;
self.updatePosition = YES;
}
}];
然后我使用 displayLink 更新和移动精灵节点。一切都很好,我可以让节点停在边缘和屏幕上的特定位置。我想知道的是是否有办法查看节点是移动还是停止: 1. 在边缘 2.在特定的地方通过代码。 3. 设备保持水平,因此加速度计不产生任何 n 或 y 大于 0 的数字。
我想在精灵节点移动时播放声音,但在精灵节点不移动时停止声音。
有什么想法吗?
【问题讨论】:
标签: sprite-kit avaudioplayer cmmotionmanager