下面是Swift中Sprite Kit中的Enemy节点。我已经为节点设置了速度,但是当它产生时没有移动。 Xcode没有给我任何错误,我在这里做错了吗?
class Enemy: SKSpriteNode {
init(imageNamed: String) {
let imageTexture = SKTexture(imageNamed: imageNamed)
super.init(texture: imageTexture, color: nil, size: imageTexture.size())
self.name = "Enemy"
self.physicsBody = SKPhysicsBody(rectangleOfSize: imageTexture.size())
self.physicsBody?.dynamic = false
self.physicsBody?.velocity = CGVectorMake(10.0,10.0)
}
}
答案 0 :(得分:7)
来自Apple的SpriteKit documentation:
一个布尔值,指示物理模拟是否移动了物理实体。
<强>声明强>
夫特
var dynamic: Bool
目标C
@property(nonatomic, getter=isDynamic) BOOL dynamic
<强>讨论强>
如果值为NO,物理机构将忽略应用于它的所有力和脉冲。在基于边的主体上忽略此属性;它们是自动静止的。
正如0x141E所说,你必须使SKPhysicsBody
动态,否则它不会移动。