2015-03-31 2 views
0

Я разрабатываю приложение iOS с быстрым, и я столкнулся с проблемой. Используя исключительно UIKit, у меня есть квадрат, который падает на платформу, возвращается в исходное положение и продолжает двигаться. Я хочу, чтобы платформа меняла цвет каждый раз, когда квадрат попадает на него, но я не знаю, как обнаружить, что квадрат вступил в контакт с платформой. Пожалуйста помоги. Вот кодUIKit Collision Detection и действия

import UIKit 
import SpriteKit 




class PlayScreen : UIViewController { 

    @IBOutlet var ScreenBack: UIImageView! 
    @IBOutlet var Platform: UIImageView! 

    var squareView: UIImageView! 
    var gravity: UIGravityBehavior! 
    var animator: UIDynamicAnimator! 
    var collision: UICollisionBehavior! 
    var itemBehaviour: UIDynamicItemBehavior! 

    override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    // Creating a bouncing Ball with the barrier of the platform 
    squareView = UIImageView(frame: CGRect(x: ScreenBack.frame.width/2, y: ScreenBack.frame.height/4, width: 40, height: 40)) 
    squareView.frame.origin.x-=squareView.frame.width/2 
    squareView.image = redBall 
    view.addSubview(squareView) 

    animator = UIDynamicAnimator(referenceView: view) 
    gravity = UIGravityBehavior(items: [squareView]) 
    animator.addBehavior(gravity) 

    collision = UICollisionBehavior(items: [squareView]) 
    collision.translatesReferenceBoundsIntoBoundary = true 
    collision.addBoundaryWithIdentifier("barrier", fromPoint: CGPointMake(self.Platform.frame.origin.x, self.Platform.frame.origin.y), toPoint: CGPointMake(self.Platform.frame.origin.x + self.Platform.frame.width, Platform.frame.origin.y)) 
    animator.addBehavior(collision) 


    itemBehaviour = UIDynamicItemBehavior(items: [squareView]) 
    itemBehaviour.elasticity = 1.0 
    itemBehaviour.resistance = 0.0 
    animator.addBehavior(itemBehaviour) 

    } 
} 
+0

п.с. Ошибок в этом коде нет. Он работает нормально. Просто нужно знать, как обнаружить столкновение –

ответ

2

обнаружить использование столкновения UICollisionBehaviorDelegate

class ViewController: UIViewController, UICollisionBehaviorDelegate { 

Установите поведение столкновения объект делегат себя

collision.collisionDelegate=self 

Добавить добавить следующую функцию

func collisionBehavior(behavior: UICollisionBehavior, beganContactForItem item: UIDynamicItem, withBoundaryIdentifier identifier: NSCopying, atPoint p: CGPoint) { 
    println("Contact - \(identifier)") 
}