Ios 以编程方式创建物理约束区域,SpriteKit
我想要两个区域,如下图所示,其中黄色区域包含精灵。例如,我希望黄色区域中的球在黄色区域的边界上反弹和反射。如何在不使用sks文件的情况下以编程方式执行此操作Ios 以编程方式创建物理约束区域,SpriteKit,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我想要两个区域,如下图所示,其中黄色区域包含精灵。例如,我希望黄色区域中的球在黄色区域的边界上反弹和反射。如何在不使用sks文件的情况下以编程方式执行此操作 使用 关于rect参数: 定义边的矩形。指定了矩形 相对于所属节点的原点 希望这有帮助 太好了,谢谢!我添加了红色.physicsBody?.linearDamping=0,球处于完美反射状态。 override func didMoveToView(view: SKView) { //Setup scene's physics
使用 关于
rect
参数:
定义边的矩形。指定了矩形
相对于所属节点的原点
希望这有帮助 太好了,谢谢!我添加了红色.physicsBody?.linearDamping=0,球处于完美反射状态。
override func didMoveToView(view: SKView) {
//Setup scene's physics body (setup the walls)
physicsBody = SKPhysicsBody(edgeLoopFromRect: frame)
let yellowSprite = SKSpriteNode(color: .yellowColor(), size: CGSize(width: 300, height: 300))
yellowSprite.position = CGPoint(x: frame.midX, y: frame.midY)
//Create the rectangle which will represent physics body.
let rect = CGRect(origin: CGPoint(x: -yellowSprite.size.width/2, y: -yellowSprite.size.height/2), size: yellowSprite.size)
yellowSprite.physicsBody = SKPhysicsBody(edgeLoopFromRect: rect)
addChild(yellowSprite)
//Add Red ball "inside" the yellow sprite
let red = SKShapeNode(circleOfRadius: 20)
red.fillColor = .redColor()
red.strokeColor = .clearColor()
red.position = yellowSprite.position
red.physicsBody = SKPhysicsBody(circleOfRadius: 20)
red.physicsBody?.restitution = 1
red.physicsBody?.friction = 0
red.physicsBody?.affectedByGravity = false
addChild(red)
red.physicsBody?.applyImpulse(CGVector(dx: 20, dy: 15))
}