Ich bin verpflichtet, eine Breakout-App in einer Single-View-Anwendung in der Swift-Sprache zu machen. Allerdings habe ich Probleme, den "Ball" zu bekommen, wenn er auf die Barriere trifft. Außerdem habe ich Probleme, die Schranke verschwinden zu lassen, nachdem sie getroffen wurde. Hat jemand die Lösung dazu, oder hat jemand eine Beispiel-App, von der ich ausschauen kann? Dies ist in Single-View-Anwendung, nicht Sprite.UICollisions in Swift
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)
}
Immer noch nicht funktioniert, sagt Barriere kann nicht gezeigt werden. Irgendwelche Idee auf eine Lösung? –
Pass Parameter, ich zeige Ihnen nur die Idee... –