【发布时间】:2017-12-12 18:25:59
【问题描述】:
我在下面有一个名为“Floor”的单独类。
class Floor: SKNode {
override init() {
super.init()
//let edgeFrame = CGRect(origin: CGPoint(x: 1,y: 1), size: CGSize(width: 1078, height: 1950))
//self.physicsBody = SKPhysicsBody(edgeLoopFrom: edgeFrame)
let borderBody = SKPhysicsBody(edgeLoopFrom: self.frame)
borderBody.friction = 0
self.physicsBody = borderBody
// Apply a physics body to the node
// self.physicsBody?.isDynamic = false
// Set the bit mask properties
self.physicsBody?.categoryBitMask = floorCategory
self.physicsBody?.contactTestBitMask = nailDropCategory
self.physicsBody?.collisionBitMask = balloonCategory
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemted")
}
}
我基本上有下降的 SKSpriteNode,它从屏幕顶部开始并到达底部,它接触“地板”并自行移除,然后再次从顶部重新启动。我遇到的问题是我所有的 SKSpriteNode 都一直卡在顶部,而不是从屏幕框架周围的边框掉下来。如何告诉我的应用程序忽略这些特定节点并让它们进入?感谢任何帮助!
这是在屏幕上左右移动的对象,但它只是从屏幕的一侧掉下来,没有边缘循环
if let accelerometerData = motionManager.accelerometerData {
if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft {
balloon.physicsBody?.velocity = CGVector(dx: accelerometerData.acceleration.x * -500.0, dy: 0)
} else {
balloon.physicsBody?.velocity = CGVector(dx: accelerometerData.acceleration.x * 500.0, dy: 0)
}
}
}
【问题讨论】:
标签: swift sprite-kit skspritenode skphysicsbody