
物理学
|
221
讨论
在
Sprite Kit
中有两种物体:
•
运动物体。运动物体能够受外力影响,能够在场景中运动。
•
静止物体。静止物体不受外力影响,它固定在一个地方,运动物体能够和它发
生碰撞。
当我们将
SKPhysicsBody
的
isDynamic
属性设置为
false
时,这个物体就不再受对
外力的影响,同时停止运动和旋转。但是,我们仍然可以通过改变精灵的位置和角
度或者使用动作来改变它的位置(我们在
6.9
节中学过了)。
7.4
定义碰撞体的形状
问题
我们想给物体一个自定义的外形。
解决方案
要让物体的形状不再是默认的矩形,我们可以使用另外一种创建物体的方法,如
SKPhysicsBody(circleOfRadius:)
或者
SKPhysics Body(polygonFromPath:)
,如
以下代码所示:
let circleSprite = SKShapeNode()
let circleRect: CGRect =
CGRect(x: -50, y: -50, width: 100, height: 100)
circleSprite.path =
UIBezierPath(ovalIn:circleRect).cgPath
circleSprite.lineWidth = 1
circleSprite.physicsBody = SKPhysicsBody(circleOfRadius:50)
circleSprite.position =
CGPoint(x: self.frame.midX ...