我有一个代表用户的SKSpriteNode,我希望这个节点随着用户的移动而移动,如果用户移动,那么节点就会向同一方向移动。
起始位置是视图的中心,我认为这是有可能使这个工作与rotationRate, userAcceleration和gravity从CMMotionManager (iOS 7),但我不知道如果我错了,或者我应该用这些值做什么操作。
如果有人能帮助我,我会很感激。谢谢。
现在,我要做
if ([self.motionManager isDeviceMotionAvailable] == YES) {
[self.motionManager startDeviceMotionUpdatesToQueue:self.queueMotion withHandler:^(CMDeviceMotion *motion, NSError *error) {
self.xpos = motion.userAcceleration.x * motion.gravity.x * motion.rotationRate.x;
self.ypos = motion.userAcceleration.y * motion.gravity.y * motion.rotationRate.y;
[self performSelectorOnMainThread:@selector(updatePosition:) withObject:nil waitUntilDone:YES];
}];
}
然后我将这些x和y坐标添加到SKSpriteNode位置,并将SKSpriteNode移动到这个最终位置。我得到的结果是SKSpriteNode在我走路的时候不会移动但是如果我硬加速它就会移动但是如果我以恒定的速度走路它就不会移动