如何解决如何在 iOS 上将 UICollisionBehavior 动画化为移动的 UIView 元素?
我正在开发一款游戏,在该游戏中,您必须使用可轻弹的球击中目标。
- 目标 (UIView) 作为 CABasicAnimation 进行动画处理。
- 球 (UIImageView) 被分配了一个动画师,它本身被分配了一个 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)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。