【发布时间】:2017-05-11 18:29:17
【问题描述】:
我的视野中心有一个圆圈。被称为enemyBall 的圆圈与它发生碰撞。我想检测这些碰撞,然后从视图中移除enemyBalls。
func generateEnemyBall(){
let enemyBall = SKSpriteNode()
let randomColor = Int((arc4random_uniform(UInt32(circleTextures.count))))
enemyBall.texture = SKTexture(imageNamed: circleTextures[randomColor])
enemyBall.size = CGSize(width: mainCircle.size.width / 5, height: mainCircle.size.width / 5)
enemyBall.physicsBody = SKPhysicsBody(circleOfRadius: enemyBall.size.width / 2)
enemyBall.physicsBody?.affectedByGravity = false
let quadrant = Int(arc4random_uniform(UInt32(3)))
enemyBallForce = -CGFloat(arc4random_uniform(UInt32(100)))
switch quadrant {
case 0:
enemyBall.position = CGPoint(x: self.frame.maxX - 20, y: self.frame.maxY - 100)
self.addChild(enemyBall)
let dx = (enemyBall.position.x) - mainCircle.position.x
let dy = (enemyBall.position.y) - mainCircle.position.y
let impulse = applyImpulse(dx: dx, dy: dy)
enemyBall.physicsBody?.applyImpulse(CGVector(dx: enemyBallForce * impulse.dx, dy: enemyBallForce * impulse.dy))
break
现在我该怎么办。
【问题讨论】:
-
查看关于 SO 的 Sprite-Kit 文档 - 有一些在 Swift 中使用 Sprite-Kit 进行碰撞和接触检测的好例子。
标签: swift xcode sprite-kit skspritenode