下面是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)
}
}
Run Code Online (Sandbox Code Playgroud)
来自Apple的SpriteKit文档:
一个布尔值,指示物理模拟是否移动了物理主体.
宣言
迅速
var dynamic: BoolObjective-C的
@property(nonatomic, getter=isDynamic) BOOL dynamic讨论
如果值为NO,则物理机构忽略应用于它的所有力和脉冲.在基于边的主体上忽略此属性; 它们是自动静态的.
正如0x141E所说,你必须使你的SKPhysicsBody动态,或者它不会移动.