html5中文学习网

您的位置: 首页 > ios » 正文

iOS Game模板碰撞检测的一些细节_IOS开发

[ ] 已经帮助:人解决问题

   我们把需要检测碰撞的物理设置物理体(以下我们把这个物理体称作xx)4ssHTML5中文学习网 - HTML5先行者学习网

  xx.physicsBody=SKPhysicsBody(rectangleOfSize:CGSize(x:100,y:100))4ssHTML5中文学习网 - HTML5先行者学习网

  然后给这个物理体设置一个标识(BitMaskType是自己新建的一个类)4ssHTML5中文学习网 - HTML5先行者学习网

  xx.physicsBody?.categoryBitMask=BitMaskType.xx4ssHTML5中文学习网 - HTML5先行者学习网

  最后设置会发生碰撞的物理(比如响应与yy发生碰撞的事件)4ssHTML5中文学习网 - HTML5先行者学习网

  xx.physicsBody?.contactTestBitMask=BitMaskType.yy4ssHTML5中文学习网 - HTML5先行者学习网

  最后添加代码4ssHTML5中文学习网 - HTML5先行者学习网

  func didBeginContact(contact: SKPhysicsContact) {4ssHTML5中文学习网 - HTML5先行者学习网

  println("发生碰撞")4ssHTML5中文学习网 - HTML5先行者学习网

  }4ssHTML5中文学习网 - HTML5先行者学习网

  我们可以发现的确发生了碰撞(以上部分粗略描述,若有疑问请自行百度)4ssHTML5中文学习网 - HTML5先行者学习网

  有时候我们会发现两个物理题还未碰撞,但是系统就已经响应了碰撞事件,这个时候我们不妨将物理体的size设置的相对小一些。4ssHTML5中文学习网 - HTML5先行者学习网

  有的时候两个物理体明明已经发生碰撞了,但是系统并未响应碰撞事件,这又是为什么呢?4ssHTML5中文学习网 - HTML5先行者学习网

  请注意我们的第一句代码,也就是设置物理体大小的那一句,在这一句中我们设置了一个100*100的物理体,但是我们并未说明中心点,而默认的center为CGPoint(0,0).4ssHTML5中文学习网 - HTML5先行者学习网

  如下图显示:4ssHTML5中文学习网 - HTML5先行者学习网

iOS Game模板碰撞检测的一些细节 三联

  红色的正方形表示你想要创建物理体,而事实上系统创建的物理体则是黄色的正方形。这个物理体在屏幕中并不显示,但事实上是这个物理体在发生碰撞。为什么会发生这样的情况?原因是Xcode默认的以坐标的左下角为中心创建了一个100*100的正方形。为了解决这个问题,我们修改创建物理体的代码。4ssHTML5中文学习网 - HTML5先行者学习网

  xx.physicsBody=SKPhysicsBody(rectangleOfSize:CGSize(x:100,y:100),center:CGPoint(x:0.5, y: 0.5))4ssHTML5中文学习网 - HTML5先行者学习网

  好的在上诉代码中我们以坐标(50,50)为中兴创建了一个100*100的正方形,也就是我们想象中的红色正方形。4ssHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助