gpt4 book ai didi

ios - Swift 中的 UICollisions

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:00:05 27 4
gpt4 key购买 nike

我需要使用 Swift 语言在单 View 应用程序中制作 Breakout 应用程序。但是,我无法让“球”对击中障碍使用react。此外,我无法让屏障在被击中后消失。有没有人对此有解决方案,或者有没有人有我可以引用的示例应用程序?这是在单 View 应用程序中,而不是 Sprite。

var dynamicAnimatior = UIDynamicAnimator()

override func viewDidLoad() {
super.viewDidLoad()
dynamicAnimatior = UIDynamicAnimator(referenceView: view)
setupViews()
}

func setupViews() {

let blueSquare = UIView(frame: CGRectMake(100, 100, 50, 50))
blueSquare.backgroundColor = UIColor.blueColor()
view.addSubview(blueSquare)

let barrier = UIView(frame: CGRect(x: 0, y: 300, width: 130, height: 20))
barrier.backgroundColor = UIColor.redColor()
view.addSubview(barrier)

addDynamicBehaviors([blueSquare])
}

func addDynamicBehaviors(array: [UIView]) {

let dynamicItemBehavior = UIDynamicItemBehavior(items: array)
dynamicItemBehavior.density = 1.0
dynamicItemBehavior.friction = 0.0
dynamicItemBehavior.resistance = 0.0
dynamicItemBehavior.elasticity = 1.0
dynamicAnimatior.addBehavior(dynamicItemBehavior)

let pushBehavior = UIPushBehavior(items: array, mode: .Instantaneous)
pushBehavior.magnitude = 1.0
pushBehavior.pushDirection = CGVectorMake(0.5, 0.5)
dynamicAnimatior.addBehavior(pushBehavior)

let collisionBehavior = UICollisionBehavior(items: array)
collisionBehavior.translatesReferenceBoundsIntoBoundary = true
collisionBehavior.collisionMode = .Everything
collisionBehavior.collisionDelegate = self

dynamicAnimatior.addBehavior(collisionBehavior)
}

最佳答案

如果您希望它们发生碰撞,您需要在 UICollisionBehavior 中同时拥有这两个对象。根据您的需要,有几种可能性。我想你需要你的球在障碍物上弹跳,所以创造行为:

let collisionBehavior = UICollisionBehavior(blueSquare: array)

然后添加一个与您的障碍相对应的刚性边界:

let edge = CGPointMake(barrier.frame.origin.x + barrier.frame.size.width,
barrier.frame.origin.y + barrier.frame.size.heigth);
collisionBehavior.addBoundaryWithIdentifier("barrier",
fromPoint:barrier.frame.origin,
toPoint:rightEdge];

现在,如果您想要捕获 碰撞,您需要向collisionDelegate 添加一个委托(delegate)。当命中发生时,这个委托(delegate)应该能够响应多种方法,(阅读关于 UICollisionBehaviorDelegate 的文档。

关于ios - Swift 中的 UICollisions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com