使节点受重力影响没有影响; Swift
Making a node affected by gravity has no affect; Swift
所以,我正在尝试使用 Sprite Kit 和 Swift 制作一个简单的游戏。在我的游戏中,我有从天而降的障碍物。它们是小圆圈。这是我的圈子代码:
func createObstacle(){
var ball = SKShapeNode(circleOfRadius: 20 )
var width = UInt32(self.frame.width)
var random_number = arc4random_uniform(width)
ball.position = CGPointMake(CGFloat(random_number), frame.height)
ball.strokeColor = SKColor.blackColor()
ball.glowWidth = 1.0
ball.fillColor = SKColor.blueColor()
ball.physicsBody?.affectedByGravity = true
self.addChild(ball)
}
这很简单。然而,这一行
ball.physicsBody?.affectedByGravity = true
似乎并没有实际影响节点。这不会做任何事情,并且在模拟器中没有视觉上显示的引力。我不知道为什么这不起作用。有人知道为什么吗?
编辑代码:
func createObstacle(){
var ball = SKShapeNode(circleOfRadius: 20 )
var width = UInt32(self.frame.width)
var random_number = arc4random_uniform(width)
ball.position = CGPointMake(CGFloat(random_number), frame.height)
ball.strokeColor = SKColor.blackColor()
ball.glowWidth = 1.0
ball.fillColor = SKColor.blueColor()
ball.physicsBody = SKPhysicsBody(circleOfRadius: 20)
ball.physicsBody?.affectedByGravity = true
self.addChild(ball)
}
您还没有向 SKShapeNode
添加 SKPhysicsBody
,因此 ball.physicsBody
是 nil
而 affectedByGravity
未设置。
要添加物理体,您可以执行以下操作:
ball.physicsBody = SKPhysicsBody(circleOfRadius: 20)
现在你可以设置affectedByGravity
:
ball.physicsBody!.affectedByGravity = true
编辑:
physicsWorld.gravity
的 CGVector
应该是:
// Note the minus sign.
physicsWorld.gravity = CGVector(dx: 0, dy: -9.8)
所以,我正在尝试使用 Sprite Kit 和 Swift 制作一个简单的游戏。在我的游戏中,我有从天而降的障碍物。它们是小圆圈。这是我的圈子代码:
func createObstacle(){
var ball = SKShapeNode(circleOfRadius: 20 )
var width = UInt32(self.frame.width)
var random_number = arc4random_uniform(width)
ball.position = CGPointMake(CGFloat(random_number), frame.height)
ball.strokeColor = SKColor.blackColor()
ball.glowWidth = 1.0
ball.fillColor = SKColor.blueColor()
ball.physicsBody?.affectedByGravity = true
self.addChild(ball)
}
这很简单。然而,这一行
ball.physicsBody?.affectedByGravity = true
似乎并没有实际影响节点。这不会做任何事情,并且在模拟器中没有视觉上显示的引力。我不知道为什么这不起作用。有人知道为什么吗?
编辑代码:
func createObstacle(){
var ball = SKShapeNode(circleOfRadius: 20 )
var width = UInt32(self.frame.width)
var random_number = arc4random_uniform(width)
ball.position = CGPointMake(CGFloat(random_number), frame.height)
ball.strokeColor = SKColor.blackColor()
ball.glowWidth = 1.0
ball.fillColor = SKColor.blueColor()
ball.physicsBody = SKPhysicsBody(circleOfRadius: 20)
ball.physicsBody?.affectedByGravity = true
self.addChild(ball)
}
您还没有向 SKShapeNode
添加 SKPhysicsBody
,因此 ball.physicsBody
是 nil
而 affectedByGravity
未设置。
要添加物理体,您可以执行以下操作:
ball.physicsBody = SKPhysicsBody(circleOfRadius: 20)
现在你可以设置affectedByGravity
:
ball.physicsBody!.affectedByGravity = true
编辑:
physicsWorld.gravity
的 CGVector
应该是:
// Note the minus sign.
physicsWorld.gravity = CGVector(dx: 0, dy: -9.8)