我正在做一个游戏,你必须用一个可轻弹的球击中一个目标。
- 目标( UIView ) 动画为 CABasicAnimation。
- 球( UIImageView) 被分配了一个动画器,它本身被分配了一个 UICollisionBehavior,包含目标和足球。
所以现在我用球击中了目标,但没有任何反应。但是,如果我击中目标的原点,则会发生碰撞:球从一个看不见的物体反弹回来,屏幕另一侧的目标移动,就像被球击中一样。
所以显然只有目标是动画的,而不是碰撞属性。我怎样才能解决这个问题?
UICollisionBehavior - 代码
self.animator = UIDynamicAnimator(referenceView: football.superview!)
collision = UICollisionBehavior(items: [football,target])
collision.collisionDelegate = self
collision.translatesReferenceBoundsIntoBoundary = true
animator.addBehavior(collision)
CABasicAnimation - 代码
func coreAnimateGoalRight(){
let animation = CABasicAnimation(keyPath: "position.x")
animation.fromValue = target.center.x
animation.toValue = screenSize.width - target.frame.size.width/2
animation.duration = 5
animation.fillMode = .forwards
animation.autoreverses = true
animation.isRemovedOnCompletion = false
animation.beginTime = CACurrentMediaTime()
target.layer.add(animation, forKey: nil)
}