【发布时间】:2019-04-24 13:27:13
【问题描述】:
我知道这个问题已经被问过很多次了,但我一直在网上寻找,找不到我的基本问题的解决方案。
我有一个SKPhysicsContact,它在 2 个对象接触时运行以下代码:
let ball = SKSpriteNode(imageNamed: "circle")
ball.position = CGPoint(x: self.frame.size.width / 3, y: self.frame.size.height / 3)
ball.size = CGSize(width: ballSize * 2, height: ballSize * 2)
ball.physicsBody = SKPhysicsBody(circleOfRadius: ballSize)
ball.physicsBody?.affectedByGravity = false
ball.physicsBody?.isDynamic = true
ball.physicsBody?.restitution = 1
ball.physicsBody?.linearDamping = 0
ball.physicsBody?.friction = 0
ball.zPosition = 2
ball.physicsBody?.categoryBitMask = PhysicsCategoryBall
ball.physicsBody?.contactTestBitMask = PhysicsCategoryAll
ball.physicsBody?.collisionBitMask = PhysicsCategoryWall
ball.run(colorBlack)
self.addChild(ball)
SKPhysicsContact 代码第一次运行时,SKSpriteNode“球”被创建。显然,SKPhysicsContact 第二次运行时,游戏崩溃了,因为它试图在“球”已经存在时再次添加“球”。
在添加另一个球之前没有removeFromParent() 在球上,我如何创建一个简单的函数/方法来在每次运行我的SKPhysicsContact 时一遍又一遍地创建相同的SKSpriteNode“球”?
干杯:)
【问题讨论】:
标签: swift xcode sprite-kit