【发布时间】:2014-07-30 09:06:59
【问题描述】:
我刚开始玩 swift 并希望在我的任何节点发生碰撞时执行某些操作。显然我没有得到那个工作,但我不知道为什么。阅读文档几次,但它主要是为 Objective-C 编写的,老实说,我认为我没有理解它。
import SpriteKit
class GameScene: SKScene, SKPhysicsContactDelegate {
var eyeset = 0
var eyes: [SKSpriteNode] = []
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
for touch: AnyObject in touches {
let location = touch.locationInNode(self)
if (eyeset < 9) {
eyes.insert(SKSpriteNode(imageNamed: "eye"), atIndex: eyeset)
eyes[eyeset].xScale = 0.25
eyes[eyeset].yScale = 0.25
eyes[eyeset].position = location
eyes[eyeset].physicsBody = SKPhysicsBody(circleOfRadius: eyes[eyeset].size.height/2)
eyes[eyeset].physicsBody.collisionBitMask = 1
eyes[eyeset].physicsBody.dynamic = true
eyes[eyeset].physicsBody.affectedByGravity = true
self.addChild(eyes[eyeset])
eyeset++
}
else if (eyeset < 10) {
eyes.insert(SKSpriteNode(imageNamed: "eye"), atIndex: eyeset)
eyes[eyeset].xScale = 0.5
eyes[eyeset].yScale = 0.5
eyes[eyeset].position = location
eyes[eyeset].physicsBody = SKPhysicsBody(circleOfRadius: eyes[eyeset].size.height/2)
eyes[eyeset].physicsBody.collisionBitMask = 1
eyes[eyeset].physicsBody.dynamic = true
eyes[eyeset].physicsBody.angularDamping = 1
eyes[eyeset].physicsBody.affectedByGravity = false
self.addChild(eyes[eyeset])
eyeset++
}
else {
eyes[eyeset-1].runAction(SKAction.moveTo(location, duration: 0.25))
}
}
}
func didBeginContact(contact: SKPhysicsContact!) {
println("Muttermäßig")
}
}
【问题讨论】:
标签: swift sprite-kit xcode6