Добавление поведения гравитации к нескольким объектам в Swift

Я строю игру, в которой много квадратных блоков плавают по экрану, отражаясь друг от друга, от стен и т. Д., Пока они не будут уничтожены. В настоящее время у меня есть мастер UIGravityBehavior и я добавляю каждый квадрат (UIView Класс с именем SquareView), как он создан, затем удалите его, когда он будет уничтожен. Но я думаю, что я должен делать это внутри объекта SquareView. Вот соответствующий код:

class ViewController: UIViewController, UICollisionBehaviorDelegate  {
    var gravity: UIGravityBehavior!

...

// next sequence adds a square
let newSquare = SquareView()
newSquare.createSquare(touch.locationInView(view).x, y: touch.locationInView(view).y)
view.addSubview(newSquare)
gravity.addItem(newSquare)

...

// this removes a square
gravity.removeItem(currentSquare)

Поэтому я считаю, что я должен переместить этот код за пределы ViewController в мое определение моего класса SquareView:

func createSquare(x: CGFloat, y: CGFloat){
    self.backgroundColor = color[touchCount]
    self.frame = CGRect(x: x, y: y, width: size[touchCount], height: size[touchCount])
}

Кстати, я делаю то же самое с UICollisionBehavior и предположим, что это не оптимально.

Любая помощь будет отличной!

0 ответов

Другие вопросы по тегам