touchesBegan中的applySpotn上的applyImpulse不起作用

时间:2015-11-08 16:06:13

标签: ios xcode swift swift2

我对Swift有点新意。我有这个问题,SpriteNode" Ball"没有对touchesBegan-method中的applyImpulse命令作出反应。整体physicsBody工作完全正常,重力,恢复原状等。但是当我使用applyImpulse时,什么也没发生。这是代码:

 document.getElementsByClassName('sharefbbtn')[0].onclick = function() {    
    if(!burl){
        burl = window.location.href ;
    }  
  FB.ui({
    display: 'popup',
    method: 'share',
    href: burl
  }, function(response){
      if (response && !response.error_code) {
          //Thank the user
        } else{
          //Do nothing
        }

  });
}

请帮帮我:)。

显然我也有一个理由,这只是相关的代码。

1 个答案:

答案 0 :(得分:1)

使用以下代码行创建本地对象球:

let ball = SKSpriteNode(imageNamed: "Ball")

didMoveToView方法内。它使用self.addChild(ball)创建并放置到场景中。但在这行代码中:

self.ball.physicsBody?.applyImpulse(CGVectorMake(0.0, 5.0))

您从其他physicsBody?.applyImpulse(CGVectorMake(0.0, 5.0))对象中调用ball,该对象未在此处发布的代码中显示。此对象与您在didMoveToView方法中创建的对象不同。

您需要为ball中的此功能didMoveToVeiw对象初始化全局:

ball = SKSpriteNode(imageNamed: "Ball")

没有let关键字