下面是
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) } }
解决方法
来自Apple的
SpriteKit documentation:
A Boolean value that indicates whether the physics body is moved by the physics simulation.
Declaration
Swift
var dynamic: Bool
Objective-C
@property(nonatomic,getter=isDynamic) BOOL dynamic
Discussion
If the value is NO,the physics body ignores all forces and impulses applied to it. This property is ignored on edge-based bodies; they are automatically static.
正如0x141E所说,你必须使你的SKPhysicsBody动态,否则它不会移动.