【问题标题】:Why is my sprite shaking when touching another physics body?为什么我的精灵在接触另一个物理物体时会颤抖?
【发布时间】:2014-11-11 20:30:03
【问题描述】:

我有一个精灵,它的位置由加速度计操纵,如下所示:

-(float)movement {
  self.accelerometerData = self.motionManager.accelerometerData;
  float xAccelerationPosition = 0;
  if ((self.accelerometerData.acceleration.x)<-0.1) {
    xAccelerationPosition = 30 * self.accelerometerData.acceleration.x;
  }
   if ((self.accelerometerData.acceleration.x)>0.1) {
    xAccelerationPosition = 30 * self.accelerometerData.acceleration.x;
  }


  return xAccelerationPosition;
}
-(void)update:(NSTimeInterval)currentTime {

  if ((self.player.position.x + [self.playerData movement]) < self.frame.size.width &&
      (self.player.position.x + [self.playerData movement]) > 0){

      [self.player setPosition:CGPointMake((self.player.position.x + [self.playerData movement]), self.player.position.y)];

  }

}

方法在不同的类中。

我在播放器和场景中也有一个物理体,但是只要 xAccelerationPosition 变得太高,精灵就会在屏幕两侧开始晃动。为什么?

【问题讨论】:

  • 对它有好感吗? .... <.>
  • 他们可能有点太享受他们的时间了

标签: ios objective-c sprite-kit physics


【解决方案1】:

用加速度计数据提供玩家身体的速度(或施加脉冲),而不是直接更新玩家的位置,因为这将绕过物理碰撞处理,让它在下一帧中解决与其他身体的任何穿透。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多