【发布时间】:2017-07-14 03:03:28
【问题描述】:
我正在尝试创建一个球,该球在创建后会自动沿随机方向向前移动。我尝试创建一个从 0-360 的随机角度并让节点旋转,然后对节点施加一个脉冲,但节点一旦创建就停留在那里,所以我无法判断它是否只是脉冲这不起作用,或者旋转甚至不起作用。
enemy.size = CGSize(width: 20, height:20)
enemy.position = CGPoint(x: frame.width/2, y: frame.height/2)
enemy.color = UIColor(red:255.0,green:0.0,blue:0.0,alpha:1.0)
enemy.colorBlendFactor = 1.0
enemy.physicsBody?.affectedByGravity = false
enemy.physicsBody?.isDynamic = true
enemy.physicsBody?.restitution = 1.0
enemy.physicsBody?.friction = 0.0
enemy.physicsBody?.linearDamping = 0.0
self.addChild(enemy)
这只是为了创造敌人,但我不知道如何应用随机方向和向前移动。
enemy.size = CGSize(width: 20, height:20)
enemy.position = CGPoint(x: frame.width/2, y: frame.height/2)
enemy.color = UIColor(red:255.0,green:0.0,blue:0.0,alpha:1.0)
enemy.colorBlendFactor = 1.0
enemy.physicsBody = SKPhysicsBody(circleOfRadius:10)
enemy.physicsBody?.affectedByGravity = false
enemy.physicsBody?.isDynamic = true
enemy.physicsBody?.restitution = 1.0
enemy.physicsBody?.friction = 0.0
enemy.physicsBody?.linearDamping = 0.0
self.addChild(enemy)
let vec = CGVector(dx: CGFloat(arc4random_uniform(100)) / 50.0, dy: CGFloat(arc4random_uniform(100)) / 50.0)
enemy.physicsBody!.applyForce(vec)
这是我编辑的代码。现在敌方球被另一个球击中时会移动,但我希望敌方球自动移动。现在它停留在屏幕中间的位置直到被击中。
【问题讨论】:
-
enemy.physicsBody等于 nil 吗?如果它为 nil,您编写的代码将编译并且不会崩溃,但您不会得到您所期望的。 -
这是不可能的。你正在施加力量。您的问题是您的矢量是 2.0,2.0,这意味着您正在施加最大 4 个像素的力。如此微弱的力量,你不会看到太大的变化。
-
有时球会自己移动,但有时会保持静止,直到被另一个球击中。为什么?
标签: swift xcode sprite-kit