画面の周りにたくさんの正方形のブロックが浮かんでいて、互いに跳ね返ったり、壁などが破壊されるまでゲームを構築しています。現在、マスターが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
それも最適ではないと想定しています。
どんな助けでも素晴らしいでしょう!