2015-01-20 2 views
2

xcode6.1 osx 놀이터에서 "회원님의 applyimpulse를 찾을 수 없습니다"라는 오류 메시지가 나타납니다.회원을 찾을 수 없습니다. applyimpulse

코드 :

func spawnSand() { 

    let sand: SKSpriteNode = SKSpriteNode(imageNamed: "sand") 
    sand.position = CGPoint(x: random(min:0 , max: scene.size.width), 
    y: scene.size.height - sand.size.height) 

    sand.physicsBody = SKPhysicsBody(circleOfRadius: sand.size.width/2) 
    sand.physicsBody!.restitution = 0.9 
    sand.physicsBody!.density = 20.0 
sand.name = "sand" 
scene.addChild(sand) 
} 

func shake() { 

    scene.enumerateChildNodesWithName("sand") { node, _ in 
    node.physicsBody.applyImpulse(
     CGVector(dx:0 , dy: random(min: 20 ,max:40)) 
    ) 
    } 
    } 

답변

0

node.physicsBody는 옵션을 반환합니다. 그것을 사용하기 전에 포장을 푸십시오.

if let SKPhysicsBody body = node.physicsBody { 
    body.applyImpulse(...) 
} 
0

코드를 다음과 같이 시도하고 알려 주시기 바랍니다 경우 그 작업 ..

FUNC의 spawnSand() {

let sand: SKSpriteNode = SKSpriteNode(imageNamed: "sand") 
sand.position = CGPoint(x: random(min:0 , max: scene.size.width), 
y: scene.size.height - sand.size.height) 
sand.physicsBody = SKPhysicsBody(circleOfRadius: sand.size.width/2) 
sand.physicsBody!.restitution = 0.9 
sand.physicsBody!.density = 20.0 
sand.name = "sand" 
scene.addChild(sand)} 

FUNC 흔들림() 불행하게도 {

scene.enumerateChildNodesWithName("sand") { node, _ in 
let impulse = CGVector(dx:random(min: 20 , max:60) ,dy: 
random(min: 20 , max:60)) 
node.physicsBody?.applyImpulse(impulse) 
} 
} 
+0

감사합니다. Praveen, 작동 중입니다. –

0

나는 .applyImpulse가 전달 된 CGVector 생성자를 받아들이지 않는 곳에 이상한 문제가있었습니다. 나는 CGVector 변수를 분리해야만했습니다. 그러면 모든 것이 올바르게 작동했습니다. 또한 physicsBody는 사용하기 전에 풀어야하는 선택 사항입니다.

func shake() { 
    scene.enumerateChildNodesWithName("sand") { node, _ in 
     let impulse = CGVector(dx: 0, dy: random(min: 20, max: 40)) 
     node.physicsBody?.applyImpulse(impulse) 
    } 

    scene.enumerateChildNodesWithName("shape") { 
     node, _ in 
     let impulse = CGVector(dx: random(min: 20, max: 60), dy: random(min: 20, max: 60)) 
     node.physicsBody?.applyImpulse(impulse) 
    } 
} 
관련 문제