2015-06-29 113 views
0

我在我所處的節點,周圍用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

我要玩時精靈節點正在移動的聲音,但停止時的聲音子畫面節點不動。
任何想法?

回答

0

SKPhysicsBody有一個屬性,稱爲resting。用它來測試運動。

if(myNode.physicsBody.resting) { 
    // node is not moving 
} else { 
    // node is moving 
} 

如果您只想檢查某個移動軸,您也可以使用velocity屬性。

相關問題